Index: crystalize.rkt ================================================================== --- crystalize.rkt +++ crystalize.rkt @@ -207,11 +207,13 @@ [(and (note-count . > . 0) (string=? disposition "")) (format "There is a note appended." pagenode)] [else ""])) - (format "~a ~a ~a" series-part disp-part notes-part)) + (cond [(andmap non-empty-string? (list series-part disp-part notes-part)) + (format "~a ~a ~a" series-part disp-part notes-part)] + [else ""])) ;; ~~~ Notes ~~~ ;; Save a collection of ◊note tags to the DB, and return the HTML of the complete Index: template-html.rkt ================================================================== --- template-html.rkt +++ template-html.rkt @@ -71,13 +71,15 @@
}])) (define (html$-article-close footertext) - ◊string-append{
- - }) + (cond [(non-empty-string? footertext) + ◊string-append{ + + }] + [else ""])) (define (html$-page-body-close) ◊string-append{ }) Index: web-extra/martin.css.pp ================================================================== --- web-extra/martin.css.pp +++ web-extra/martin.css.pp @@ -325,16 +325,31 @@ margin: 0; text-indent: 0; } p + p { - text-indent: 1em; + text-indent: 2em; } section.entry-content blockquote { font-size: ◊x-lineheight[0.7]; line-height: ◊derive-lineheight[7 #:per-lines 6]; + margin: ◊x-lineheight[1.0] 2em; + } + + section.entry-content blockquote:first-child { + margin-top: 0; + } + + section.entry-content blockquote footer::before { + content: '—'; /* Em-dash */ + } + + section.entry-content blockquote footer { + margin-top: ◊x-lineheight[1]; + text-align: right; + width: calc(100% + 2em); } section.entry-content h2 { font-size: 1.2rem; font-style: italic;