Index: code-docs/snippets-html.scrbl ================================================================== --- code-docs/snippets-html.scrbl +++ code-docs/snippets-html.scrbl @@ -56,14 +56,17 @@ @defproc[(html$-page-head [title (or/c string? #f) #f]) non-empty-string?] Returns the @tt{} section of an HTML document. -@defproc[(html$-page-body-open) non-empty-string?] +@defproc[(html$-page-body-open [body-class string? ""]) non-empty-string?] Returns the opening @tt{} and @tt{
} tags and elements that immediately follow, such as site header, logo and navigation. + +If @racket[_body-class] is a non-empty string, its contents will be included in the @tt{class} +attribute of the @tt{} tag. @defproc[(html$-article-open [pagenode pagenode?] [title-specified-in-doc? boolean?] [title txexpr?] [pubdate string?]) Index: crystalize.rkt ================================================================== --- crystalize.rkt +++ crystalize.rkt @@ -235,11 +235,11 @@ (define (make-article-footertext pagenode series disposition disp-note-id note-count) (define s-title (series-title)) (define s-noun (series-noun)) (define series-part (cond [(non-empty-string? s-title) - (format "This is ~a, part of ‘~a’." + (format "This is ~a, part of ‘~a’." s-noun series s-title)] [else ""])) (define disp-part @@ -259,11 +259,11 @@ (format "There is a note appended." pagenode)] [else ""])) (cond [(ormap non-empty-string? (list series-part disp-part notes-part)) - (format "~a ~a ~a" series-part disp-part notes-part)] + (string-join (list series-part disp-part notes-part))] [else ""])) ;; ~~~ Notes ~~~ Index: series/template.html.p ================================================================== --- series/template.html.p +++ series/template.html.p @@ -1,14 +1,14 @@ ◊html$-page-head[(select-from-metas 'title metas)] -◊html$-page-body-open[] +◊html$-page-body-open["series-page"] ◊(unfence (->html doc #:splice? #t)) ◊html$-page-body-close[] Index: snippets-html.rkt ================================================================== --- snippets-html.rkt +++ snippets-html.rkt @@ -48,12 +48,13 @@ }) -(define (html$-page-body-open) - ◊string-append{
+(define (html$-page-body-open [class ""]) + (define body-class (if (non-empty-string? class) (format " class=\"~a\"" class) "")) + ◊string-append{

The Local Yarn

}) Index: web-extra/martin.css.pp ================================================================== --- web-extra/martin.css.pp +++ web-extra/martin.css.pp @@ -305,10 +305,15 @@ } footer.article-info::before { content: "☞\00a0"; } + + /* Within article info, don’t display series info when on a series page (redundant) */ + body.series-page .series-part { + display: none; + } p.time::before { content: none; }