diff --git a/quad/qtest/markdown.rkt b/quad/qtest/markdown.rkt index 066aa5d3..6d81f776 100644 --- a/quad/qtest/markdown.rkt +++ b/quad/qtest/markdown.rkt @@ -156,24 +156,30 @@ (define bottom-margin 120) (define side-margin 120) (define page-offset (pt side-margin top-margin)) +(require racket/date) (define q:page (q #:offset page-offset #:pre-draw (λ (q doc) (add-page doc)) #:post-draw (λ (q doc) - (text doc (format "— ~a —" (hash-ref (quad-attrs q) 'page-number)) - 200 + (font-size doc 10) + (text doc (format "~a · ~a at ~a" (hash-ref (quad-attrs q) 'page-number) + (hash-ref (quad-attrs q) 'doc-title) + (date->string (current-date) #t)) + side-margin (- (pdf-height doc) bottom-margin))))) (define q:doc (q #:pre-draw (λ (q doc) (start-doc doc)) #:post-draw (λ (q doc) (end-doc doc)))) - -(define (page-wrap xs vertical-height) +(define (page-wrap xs vertical-height path) (break xs vertical-height #:soft-break line-spacer? #:finish-wrap (λ (pcs q idx) (list (struct-copy quad q:page [attrs (let ([page-number idx] [h (hash-copy (quad-attrs q:page))]) (hash-set! h 'page-number page-number) + (define-values (dir name _) + (split-path (path-replace-extension path #""))) + (hash-set! h 'doc-title (string-titlecase (path->string name))) h)] [elems pcs]))))) @@ -187,7 +193,7 @@ (let* ([x (time-name runify (runify (qexpr->quad xs)))] [x (time-name ->string-quad (map (λ (x) (->string-quad pdf x)) x))] [x (time-name line-wrap (line-wrap x line-width))] - [x (time-name page-wrap (page-wrap x vertical-height))] + [x (time-name page-wrap (page-wrap x vertical-height path))] [x (time-name position (position (struct-copy quad q:doc [elems x])))]) (time-name draw (draw x pdf))))