diff --git a/quad/qtest/test-docs-tester.pdf b/quad/qtest/test-docs-tester.pdf index 93829247..44329d3e 100644 Binary files a/quad/qtest/test-docs-tester.pdf and b/quad/qtest/test-docs-tester.pdf differ diff --git a/quad/qtest/test-emoji-tester.pdf b/quad/qtest/test-emoji-tester.pdf index fcfa2dda..1cebc9d0 100644 Binary files a/quad/qtest/test-emoji-tester.pdf and b/quad/qtest/test-emoji-tester.pdf differ diff --git a/quad/qtest/test-fallback-mini-tester.pdf b/quad/qtest/test-fallback-mini-tester.pdf index 3e3f220e..64404908 100644 Binary files a/quad/qtest/test-fallback-mini-tester.pdf and b/quad/qtest/test-fallback-mini-tester.pdf differ diff --git a/quad/qtest/test-fallback-super-tester.pdf b/quad/qtest/test-fallback-super-tester.pdf index c18b1697..a4c29472 100644 Binary files a/quad/qtest/test-fallback-super-tester.pdf and b/quad/qtest/test-fallback-super-tester.pdf differ diff --git a/quad/qtest/test-hello-tester.pdf b/quad/qtest/test-hello-tester.pdf index 84362042..25bbf488 100644 Binary files a/quad/qtest/test-hello-tester.pdf and b/quad/qtest/test-hello-tester.pdf differ diff --git a/quad/qtest/test-kafka-tester.pdf b/quad/qtest/test-kafka-tester.pdf index 9a99047f..32dfe75e 100644 Binary files a/quad/qtest/test-kafka-tester.pdf and b/quad/qtest/test-kafka-tester.pdf differ diff --git a/quad/qtest/test-symbol-tester.pdf b/quad/qtest/test-symbol-tester.pdf index c4784076..015655e7 100644 Binary files a/quad/qtest/test-symbol-tester.pdf and b/quad/qtest/test-symbol-tester.pdf differ diff --git a/quad/quadwriter/render.rkt b/quad/quadwriter/render.rkt index 593c05aa..eddf30ea 100644 --- a/quad/quadwriter/render.rkt +++ b/quad/quadwriter/render.rkt @@ -10,6 +10,8 @@ pitfall quad hyphenate + pollen/unstable/typography + pollen/decode sugar/coerce sugar/debug "attrs.rkt" @@ -94,24 +96,27 @@ (define default-line-height-multiplier 1.42) (define (setup-qs qx-arg pdf-path) - [define qexpr (replace-breaks qx-arg)] - [define the-quad + (define qexpr (decode qx-arg + #:string-proc (λ (str) (smart-ellipses (smart-dashes str))) + #:txexpr-proc smart-quotes)) + (define super-qexpr (replace-breaks qexpr)) + (define the-quad (qexpr->quad (list 'q (list->attrs :font-family default-font-family :font-size (number->string default-font-size) - :line-height (number->string (floor (* default-line-height-multiplier default-font-size)))) qexpr))] + :line-height (number->string (floor (* default-line-height-multiplier default-font-size)))) super-qexpr))) (setup-font-path-table! pdf-path) - [define atomized-qs + (define atomized-qs (time-log atomize (atomize the-quad #:attrs-proc handle-cascading-attrs #:missing-glyph-action 'fallback #:fallback "fallback" #:emoji "fallback-emoji" #:math "fallback-math" - #:font-path-resolver resolve-font-path!))] - [define hyphenated-qs (time-log hyphenate (handle-hyphenate atomized-qs))] - [define typed-quads (map generic->typed-quad hyphenated-qs)] - [define indented-qs (insert-first-line-indents typed-quads)] + #:font-path-resolver resolve-font-path!))) + (define hyphenated-qs (time-log hyphenate (handle-hyphenate atomized-qs))) + (define typed-quads (map generic->typed-quad hyphenated-qs)) + (define indented-qs (insert-first-line-indents typed-quads)) indented-qs) (define (setup-pdf qs pdf-path compress?)