85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
-
+
-
+
-
+
|
(define html-item (default-tag-function 'li))
(define html-section (default-tag-function 'h2))
(define html-subsection (default-tag-function 'h3))
(define html-newthought (default-tag-function 'span #:class "newthought"))
(define html-smallcaps (default-tag-function 'span #:class "smallcaps"))
(define html-center (default-tag-function 'div #:style "text-align: center"))
(define-tag-function (html-root attrs elements)
(define (html-root . elements)
(define first-pass
(decode-elements elements
#:txexpr-elements-proc decode-hardwrapped-paragraphs
#:exclude-tags '(script style figure table pre)))
(define second-pass
(decode-elements first-pass
#:block-txexpr-proc detect-newthoughts
#:inline-txexpr-proc decode-link-urls
#:string-proc (compose1 smart-quotes smart-dashes)
#:exclude-tags '(script style pre code)))
`(body ,@second-pass ,(html-footnote-block)))
(define-tag-function (html-blockcode attrs elems)
(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-tag-function (html-verse attrs elems)
(define (html-verse attrs elems)
(let* ([title (or (assoc 'title attrs) "")]
[italic? (assoc 'italic attrs)]
[pre-attrs (cond [italic? '([class "verse"] [style "font-style: italic"])]
[else '([class "verse"])])]
[pre-title (cond [(string>? title "") '(p [[class "verse-heading"]] ,title)]
[else ""])])
`(div [[class "poem"]] (pre ,pre-attrs ,pre-title ,@elems))))
|
187
188
189
190
191
192
193
194
195
|
187
188
189
190
191
192
193
194
195
|
-
+
|
`(a [[href ,(string-append "#"
(fn-id fn-name)
(format "~a" (+ 1 fnref-num)))]] "↩"))])
`(li [[id ,(fndef-id fn-name)]] ,@definition-text ,@backrefs))))
(cond [(null? note-items) ""]
[else `(section ((class "footnotes")) (hr) (ol ,@note-items))]))
(define-tag-function (html-note attrs elems)
(define (html-note attrs elems)
(txexpr 'note attrs (decode-paragraphs elems #:force? #t)))
|