| 
49
50
51
52
53
54
55
56
57
58
59
60
61
62
 | 
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 | 
+
+
+
 | 
                                  ol
                                  ul
                                  sup
                                  blockquote
                                  code)
(provide html-root
         html-title
         html-excerpt
         html-excerpt*
         html-item
         html-section
         html-subsection
         html-newthought
         html-caps
         html-center
         html-strike
 | 
| 
97
98
99
100
101
102
103
104
105
106
107
108
109
110
 | 
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
 | 
+
+
+
+
 | 
  (define second-pass
    (decode-elements first-pass
                     #:block-txexpr-proc detect-newthoughts
                     #:inline-txexpr-proc decode-link-urls
                     #:exclude-tags '(script style pre code)))
  `(body ,@second-pass))
(define (html-title . elements) `(title ,@elements))
(define (html-excerpt . elements) `(excerpt ,@elements))
(define (html-excerpt* . elements) `(excerpt* ,@elements))
(define (html-blockcode attrs elems)
  (define file (or (assoc 'filename attrs) ""))
  (define codeblock `(pre [[class "code"]] (code ,@elems)))
  (cond [(string>? file "") `(@ (div [[class "listing-filename"]] 128196 " " ,file) ,codeblock)]
        [else codeblock]))
(define (html-index attrs elems)
 |