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.
26 lines
1.0 KiB
Racket
26 lines
1.0 KiB
Racket
#lang racket/base
|
|
(provide configure)
|
|
|
|
(module show racket/base
|
|
(require pollen/world)
|
|
(provide show show-enabled)
|
|
|
|
(define show-enabled (make-parameter #f))
|
|
|
|
(define (show doc parser-mode here-path)
|
|
;; we only want the top doc to print in the runtime environment
|
|
;; otherwise if a Pollen source imports others, they will all print their docs in sequence.
|
|
;; so only print if the current here-path is the top path, which is stored in the `show-enabled` parameter.
|
|
(when (and (show-enabled) (equal? here-path (show-enabled)))
|
|
(if (or (eq? parser-mode world:mode-preproc)
|
|
(eq? parser-mode world:mode-template))
|
|
(display doc)
|
|
(print (with-handlers ([exn:fail? (λ(exn) ((error '|pollen markup error| ((dynamic-require 'racket/string 'string-join) (cdr ((dynamic-require 'racket/string 'string-split) (exn-message exn) ": ")) ": "))))])
|
|
((dynamic-require 'txexpr 'validate-txexpr) doc)))))))
|
|
|
|
(require 'show)
|
|
|
|
(define (configure top-here-path)
|
|
(show-enabled top-here-path))
|
|
|