From 656d53c73fb168a39ef8faf723e685e57d11947e Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Sun, 21 Jan 2018 17:16:31 -0500 Subject: [PATCH] add `current-metas` parameter (addresses #166) --- pollen/core.rkt | 1 + pollen/private/main-base.rkt | 12 ++++++++---- pollen/private/ts.rktd | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/pollen/core.rkt b/pollen/core.rkt index b68f266..923230f 100644 --- a/pollen/core.rkt +++ b/pollen/core.rkt @@ -15,6 +15,7 @@ (define+provide define-meta identity) ;; stub so it will be picked up for docs +(define+provide current-metas (make-parameter #f)) (define+provide/contract (select* key value-source [caller 'select*]) ((coerce/symbol? (or/c is-meta-value? is-doc-value? pagenode? pathish?)) (symbol?) . ->* . (or/c #f txexpr-elements?)) diff --git a/pollen/private/main-base.rkt b/pollen/private/main-base.rkt index 3e3ac93..eac9968 100644 --- a/pollen/private/main-base.rkt +++ b/pollen/private/main-base.rkt @@ -1,6 +1,6 @@ #lang racket/base (require (for-syntax racket/base racket/syntax "../setup.rkt" "split-metas.rkt") - "to-string.rkt" "../pagetree.rkt" "splice.rkt" "../setup.rkt") + "to-string.rkt" "../pagetree.rkt" "splice.rkt" "../setup.rkt" "../core.rkt") (provide (except-out (all-from-out racket/base) #%module-begin) (rename-out [dialect-module-begin #%module-begin])) @@ -17,7 +17,7 @@ (define-syntax (pmb stx) (syntax-case stx () [(_ . EXPRS) (with-syntax ([EXPRS (syntax-property #'EXPRS 'parser-mode-from-expander 'PARSER-MODE-FROM-EXPANDER)]) - #'(pollen-module-begin . EXPRS))])) + #'(pollen-module-begin . EXPRS))])) READER-SUBMOD)) @@ -64,8 +64,11 @@ (module inner pollen/private/doclang-raw DOC-RAW ; positional arg for doclang-raw that sets name of export (require pollen/top pollen/core pollen/setup (submod ".." META-MOD-ID)) + (and (current-metas METAS-ID) "\n") ; because newlines get stripped, voids don't (provide (all-defined-out) METAS-ID) - . EXPRS-WITHOUT-METAS) + . EXPRS-WITHOUT-METAS) + + (define prev-metas (current-metas)) (require 'inner) (define DOC-ID @@ -75,5 +78,6 @@ [doc-elements (strip-leading-newlines DOC-RAW)] [doc-elements-spliced (splice doc-elements (setup:splicing-tag))]) (proc doc-elements-spliced))) - + + (current-metas prev-metas) (provide DOC-ID (except-out (all-from-out 'inner) DOC-RAW)))))])) diff --git a/pollen/private/ts.rktd b/pollen/private/ts.rktd index 3dd64ee..c2edf65 100644 --- a/pollen/private/ts.rktd +++ b/pollen/private/ts.rktd @@ -1 +1 @@ -1516502120 +1516572991