From c9b8c4d8bf2c61d1c595c3974b9ffe41cb5749fc Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Sun, 26 Jan 2020 12:17:00 -0800 Subject: [PATCH] omit missing metadata --- quad/quadwriter/render.rkt | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/quad/quadwriter/render.rkt b/quad/quadwriter/render.rkt index 48b1df2b..44b650db 100644 --- a/quad/quadwriter/render.rkt +++ b/quad/quadwriter/render.rkt @@ -195,17 +195,18 @@ (or (debug-column-gap) (quad-ref (car qs) :column-gap default-column-gap))) (define (setup-pdf-metadata! qs pdf) - (define kvs - (apply append - (for/list ([(k pdf-k) (in-dict (list (cons :pdf-title 'Title) - (cons :pdf-author 'Author) - (cons :pdf-subject 'Subject) - (cons :pdf-keywords 'Keywords)))]) - (define str (or (match qs - [(cons q _) (quad-ref q k)] - [_ #false]) "")) ; default val is empty string - (list pdf-k str)))) - (apply hash-set*! (pdf-info pdf) 'Creator (format "Racket ~a [Quad library]" (version)) kvs)) + (define kv-dict + (cons + (cons 'Creator (format "Racket ~a [Quad library]" (version))) + (for*/list ([(k pdf-k) (in-dict (list (cons :pdf-title 'Title) + (cons :pdf-author 'Author) + (cons :pdf-subject 'Subject) + (cons :pdf-keywords 'Keywords)))] + [str (in-value (and (pair? qs) (quad-ref (car qs) k)))] + #:when str) + (cons pdf-k str)))) + (for ([(k v) (in-dict kv-dict)]) + (hash-set! (pdf-info pdf) k v))) (define (footnote-flow? q) (equal? (quad-ref q 'flow) "footnote"))