You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
typesetting/quad/quadwriter/markdown.rkt

48 lines
1.6 KiB
Racket

#lang debug racket/base
6 years ago
(require (for-syntax racket/base)
racket/list
racket/match
quadwriter/core
"tags.rkt")
6 years ago
(provide (except-out (all-defined-out) mb)
(rename-out [mb #%module-begin])
#%app #%datum #%top-interaction)
(provide (all-from-out "tags.rkt")
rsquo rsquo lsquo ldquo hellip ndash mdash)
6 years ago
(define rsquo "")
(define rdquo "")
(define lsquo "")
(define ldquo "")
(define hellip "")
(define ndash "")
(define mdash "")
(define-syntax-rule (mb PDF-PATH . STRS)
(#%module-begin
;; stick an nbsp in the strings so we have one printing char
(define strs (match (list . STRS)
[(? null?) '(" ")]
[strs strs]))
(define qx (root null (add-between strs (list pbr)
#:before-first (list pbr)
#:after-last (list pbr)
#:splice? #true)))
(run qx PDF-PATH)))
6 years ago
(module reader racket/base
(require syntax/strip-context (only-in markdown parse-markdown) "reader-helper.rkt")
(provide (rename-out [rs read-syntax]))
6 years ago
(define (rs path-string p)
6 years ago
(define stx (quad-at-reader path-string p))
(define parsed-stxs
(datum->syntax stx
(xexpr->parse-tree
(parse-markdown (apply string-append (syntax->datum stx))))))
6 years ago
(strip-context
(with-syntax ([STXS parsed-stxs]
[PDF-PATH (path-string->pdf-path path-string)])
6 years ago
#'(module _ quadwriter/markdown
PDF-PATH
. STXS)))))