bkyk8rc3zvpnsf5inmcqq4n3k98cv6hj-my-site-hyper-literate-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 704677ec29a09b2d8f06f0f272df883741d258b8
parent 0724d201354468c2d54ea33b9d7538584e342cf9
Author: Robby Findler <robby@racket-lang.org>
Date:   Tue, 15 Oct 2013 10:02:20 -0500

adjust scribble html renderer to fall back from svg to png
and vice-versa

original commit: 3ab82a7f8d1f48f5bab147214444dfad6503bc24

Diffstat:
Mpkgs/scribble-pkgs/scribble-lib/scribble/html-render.rkt | 43+++++++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 14 deletions(-)

diff --git a/pkgs/scribble-pkgs/scribble-lib/scribble/html-render.rkt b/pkgs/scribble-pkgs/scribble-lib/scribble/html-render.rkt @@ -1100,23 +1100,17 @@ (cond [(string? e) (super render-content e part ri)] ; short-cut for common case [(list? e) (super render-content e part ri)] ; also a short-cut - [(and (equal? (current-render-pict-as) 'png-images) + [(and (convertible? e) + (equal? (current-render-pict-as) 'png-images) (convertible? e) - (convert e 'png-bytes)) - => (lambda (bstr) - (let ([w (integer-bytes->integer (subbytes bstr 16 20) #f #t)] - [h (integer-bytes->integer (subbytes bstr 20 24) #f #t)]) - `((img ([src ,(install-file "pict.png" bstr)] - [alt "image"] - [width ,(number->string w)] - [height ,(number->string h)])))))] + (or (render-as-png e) + (render-as-svg e))) + => values] [(and (equal? (current-render-pict-as) 'svg-images) (convertible? e) - (convert e 'svg-bytes)) - => (lambda (bstr) - `((object - ([data ,(install-file "pict.svg" bstr)] - [type "image/svg+xml"]))))] + (or (render-as-svg e) + (render-as-png e))) + => values] [(image-element? e) (let* ([src (collects-relative->path (image-element-path e))] [suffixes (image-element-suffixes e)] @@ -1266,6 +1260,27 @@ (render-plain-content e part ri))))))))] [else (render-plain-content e part ri)])) + + (define/private (render-as-png e) + (cond + [(convert e 'png-bytes) + => + (lambda (bstr) + (let ([w (integer-bytes->integer (subbytes bstr 16 20) #f #t)] + [h (integer-bytes->integer (subbytes bstr 20 24) #f #t)]) + `((img ([src ,(install-file "pict.png" bstr)] + [alt "image"] + [width ,(number->string w)] + [height ,(number->string h)])))))] + [else #f])) + (define/private (render-as-svg e) + (cond + [(convert e 'svg-bytes) + => (lambda (bstr) + `((object + ([data ,(install-file "pict.svg" bstr)] + [type "image/svg+xml"]))))] + [else #f])) (define/private (render-plain-content e part ri) (define (attribs) (content-attribs e))