Index: tags-html.rkt ================================================================== --- tags-html.rkt +++ tags-html.rkt @@ -111,17 +111,17 @@ (define codeblock `(pre [[class "code"]] (code ,@elems))) (cond [(string>? file "") `(@ (div [[class "listing-filename"]] 128196 " " ,file) ,codeblock)] [else codeblock])) (define (html-verse attrs elems) - (let* ([title (or (assoc 'title attrs) "")] + (let* ([title (maybe-attr '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)] + [pre-title (cond [(string>? title "") `(p [[class "verse-heading"]] ,title)] [else ""])]) - `(div [[class "poem"]] (pre ,pre-attrs ,pre-title ,@elems)))) + `(div [[class "poem"]] ,pre-title (pre ,pre-attrs ,@elems)))) ;; There is no way in vanilla CSS to create a selector for “p tags that contain ;; a span of class ‘newthought’”. So we can handle it at the Pollen processing level. (define (detect-newthoughts block-xpr) (define (is-newthought? tx) ; Helper function Index: web-extra/martin.css.pp ================================================================== --- web-extra/martin.css.pp +++ web-extra/martin.css.pp @@ -427,10 +427,16 @@ white-space: pre-wrap; /* Whitespace is preserved by the browser. Text will wrap when necessary, and on line breaks */ } + p.verse-heading { + font-feature-settings: "smcp" on, "liga" on, "clig" on, "dlig" on, "kern" on, "onum" on, "pnum" on; + text-align: center; + font-size: 1.3rem; + } + section.entry-content figure { margin: ◊x-lineheight[1] 0; padding: 0; }