From 6f895f23c0e7401f999a894e8c8c8993c11861b5 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 1 Jun 2018 17:29:39 -0700 Subject: [PATCH] `html-to-pollen` conversion language --- pollen/private/ts.rktd | 2 +- pollen/unstable/convert/html-to-pollen.rkt | 23 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 pollen/unstable/convert/html-to-pollen.rkt diff --git a/pollen/private/ts.rktd b/pollen/private/ts.rktd index 29faf2b..554dd0c 100644 --- a/pollen/private/ts.rktd +++ b/pollen/private/ts.rktd @@ -1 +1 @@ -1527899366 +1527899379 diff --git a/pollen/unstable/convert/html-to-pollen.rkt b/pollen/unstable/convert/html-to-pollen.rkt new file mode 100644 index 0000000..f144bec --- /dev/null +++ b/pollen/unstable/convert/html-to-pollen.rkt @@ -0,0 +1,23 @@ +#lang debug racket +(require pollen/unstable/convert pollen/unstable/typography) +(provide (except-out (all-from-out racket) #%module-begin)) +(provide (rename-out [mb #%module-begin])) +(define-syntax (mb stx) + (syntax-case stx () + [(_ ARG ...) + #'(#%module-begin (displayln (html->pollen (regexp-replace* #px"\\s+" (string-join (list ARG ...) "") " "))))])) + +(module reader syntax/module-reader + pollen/unstable/convert/html-to-pollen + #:read h2p-read + #:read-syntax h2p-read-syntax + #:whole-body-readers? #t ;; need this to make at-reader work + (require scribble/reader) + + (define (h2p-read p) (syntax->datum (h2p-read-syntax (object-name p) p))) + + (define (h2p-read-syntax path-string p) + (define h2p-at-reader (make-at-reader + #:syntax? #t + #:inside? #t)) + (h2p-at-reader path-string p))) \ No newline at end of file