Overview
Comment: | Improve accuracy of long-s typesetting rules |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ac35ba69a1779fd6741e9565f85824bb |
User & Date: | joel on 2020-03-22 17:48:41 |
Other Links: | manifest | tags |
Context
2020-03-24
| ||
02:37 | Use semicolons to separate indexed keywords specified in metas; allows use of commas in the index entry check-in: 474b5560 user: joel tags: trunk | |
2020-03-22
| ||
17:48 | Improve accuracy of long-s typesetting rules check-in: ac35ba69 user: joel tags: trunk | |
17:37 | Change typography for sectional headings; add separator styling; save discretionary ligatures for certain elements, not normal body text check-in: 13f9b227 user: joel tags: trunk | |
Changes
Modified tags-html.rkt from [178b993f] to [c0de1d26].
︙ | ︙ | |||
145 146 147 148 149 150 151 | [pre-title (cond [(string>? title "") `(p [[class "verse-heading"]] ,title)] [else ""])]) `(div [[class "poem"]] ,pre-title (pre ,pre-attrs ,@elems)))) (define (html-magick . elems) (txexpr 'div '([class "antique"]) | > > > | | | | | | | | 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | [pre-title (cond [(string>? title "") `(p [[class "verse-heading"]] ,title)] [else ""])]) `(div [[class "poem"]] ,pre-title (pre ,pre-attrs ,@elems)))) (define (html-magick . elems) (txexpr 'div '([class "antique"]) (decode-elements elems #:string-proc (λ (s) (regexp-replace* #px"(?<!f)s(?![fkb\\s”,;.’:\\!\\?]|$)" s "ſ"))))) (module+ test (require rackunit) ; always round s at the end of a word (check-equal? (html-magick "mirrors? yes, it is") '(div [[class "antique"]] "mirrors? yes, it is")) ; always round s before/after f (check-equal? (html-magick "offset, satisfaction") '(div [[class "antique"]] "offset, ſatisfaction")) ; always LONG s before hyphen (check-equal? (html-magick "Shafts-bury") '(div [[class "antique"]] "Shaftſ-bury")) ; always round s before k or b (17th-century rules) (check-equal? (html-magick "ask, husband") '(div [[class "antique"]] "ask, husband")) ; always LONG s everywhere else (check-equal? (html-magick "song, substitutes") '(div [[class "antique"]] "ſong, ſubſtitutes")) ;; Nested elements (check-equal? (html-magick '(root "This is " (a [[href "class"]] (b "song, substitutes")))) '(div [[class "antique"]] (root "This is " (a [[href "class"]] (b "ſong, ſubſtitutes")))))) |
︙ | ︙ |