Index: dust.rkt ================================================================== --- dust.rkt +++ dust.rkt @@ -46,28 +46,36 @@ build-note-id notes->last-disposition-values ) (define default-authorname "Joel Dueck") +(define series-path "series/") (define (default-title date) (format "Entry of ~a" (ymd->dateformat date "d MMM YYYY"))) (define (maybe-meta m [missing ""]) (or (select-from-metas m (current-metas)) missing)) + +(define (series-pagenode) + (define maybe-series (or (select-from-metas 'series (current-metas)) "")) + (cond + [(non-empty-string? maybe-series) + (->pagenode (string-append series-path maybe-series ".html"))] + [else '||])) (define (series-noun) - (define series-pagenode (->pagenode (or (select-from-metas 'series (current-metas)) ""))) - (case series-pagenode + (define series-pnode (series-pagenode)) + (case series-pnode ['|| ""] ; no series specified - [else (or (select-from-metas 'noun-singular series-pagenode) "")])) + [else (or (select-from-metas 'noun-singular series-pnode) "")])) (define (series-title) - (define series-pagenode (->pagenode (or (select-from-metas 'series (current-metas)) ""))) - (case series-pagenode + (define series-pnode (series-pagenode)) + (case series-pnode ['|| ""] ; no series specified - [else (or (select-from-metas 'title series-pagenode) "")])) + [else (or (select-from-metas 'title series-pnode) "")])) (define (attr-present? name attrs) (for/or ([attr-pair (in-list attrs)]) (equal? name (car attr-pair))))