downgrade certain configurable setup values

pull/225/head
Matthew Butterick 5 years ago
parent 1f1f7075a2
commit 109844424e

@ -55,24 +55,10 @@ Every @racket[setup:]@racket[_name] function will resolve the current value of t
Determines the default HTTP port for the project server.} Determines the default HTTP port for the project server.}
@defoverridable[main-export symbol?]{The main X-expression exported from a compiled Pollen source file.}
@defoverridable[meta-export symbol?]{The meta hashtable exported from a compiled Pollen source file.}
@defoverridable[extension-escape-char char?]{Character for escaping output-file extensions within source-file names.} @defoverridable[extension-escape-char char?]{Character for escaping output-file extensions within source-file names.}
@deftogether[(
@defoverridable[preproc-source-ext symbol?]
@defoverridable[markup-source-ext symbol?]
@defoverridable[markdown-source-ext symbol?]
@defoverridable[null-source-ext symbol?]
@defoverridable[pagetree-source-ext symbol?]
@defoverridable[template-source-ext symbol?]
@defoverridable[scribble-source-ext symbol?]
)]{File extensions for Pollen source files.}
@defoverridable[main-pagetree string?]{Pagetree that Pollen dashboard loads by default in each directory.} @defoverridable[main-pagetree string?]{Pagetree that Pollen dashboard loads by default in each directory.}
@ -89,8 +75,6 @@ Determines the default HTTP port for the project server.}
@defoverridable[command-char char?]{The magic character that indicates a Pollen command, function, or variable.} @defoverridable[command-char char?]{The magic character that indicates a Pollen command, function, or variable.}
@defoverridable[template-prefix string?]{Prefix of the default template.}
@deftogether[( @deftogether[(
@(defoverridable newline string?) @(defoverridable newline string?)
@ -147,9 +131,6 @@ Both the names and the values of environment variables are case-insensitive, so
@history[#:added "1.1"]} @history[#:added "1.1"]}
@defoverridable[poly-source-ext symbol?]{Extension that indicates a source file can target multiple output types.}
@defoverridable[poly-targets (listof symbol?)]{List of symbols that denotes the possible targets of a @racket['poly] source file.} @defoverridable[poly-targets (listof symbol?)]{List of symbols that denotes the possible targets of a @racket['poly] source file.}

@ -24,6 +24,10 @@ Beyond keeping the commit history available, I make no promise to maintain the p
@section{Changelog} @section{Changelog}
@subsection{Version 3.0}
Downgraded the following @racket[pollen/setup] values from configurable to fixed: @racket[splicing-tag], @racket[preproc-source-ext], @racket[markup-source-ext], @racket[markdown-source-ext], @racket[null-source-ext], @racket[pagetree-source-ext], @racket[template-source-ext], @racket[scribble-source-ext], @racket[poly-source-ext], @racket[cache-dir-name], @racket[cache-subdir-name], @racket[template-prefix], @racket[fallback-template-prefix], @racket[template-meta-key], @racket[main-export], @racket[meta-export], @racket[meta-tag-name], @racket[define-meta-name].
@subsection{Version 2.2} @subsection{Version 2.2}
Added @racket[--null] and @racket[--dry-run] switches to @secref["raco_pollen_render" #:doc '(lib "pollen/scribblings/pollen.scrbl")]. Added @racket[--null] and @racket[--dry-run] switches to @secref["raco_pollen_render" #:doc '(lib "pollen/scribblings/pollen.scrbl")].

@ -55,16 +55,27 @@
'NAME 'NAME
(λ () DEFAULT-NAME))))))])) (λ () DEFAULT-NAME))))))]))
(define-syntax (define-settable-not stx)
(syntax-case stx ()
[(_ NAME DEFAULT-VALUE)
(with-syntax ([DEFAULT-NAME (format-id stx "default-~a" #'NAME)]
[NAME-THUNKED (format-id stx "~a" #'NAME)])
#'(begin
(provide (prefix-out setup: NAME-THUNKED) DEFAULT-NAME)
(define DEFAULT-NAME DEFAULT-VALUE)
;; can take a dir argument that sets start point for (get-path-to-override) search.
(define (NAME-THUNKED [dir #false]) DEFAULT-NAME)))]))
(define-settable cache-watchlist null) (define-settable cache-watchlist null)
(define-settable envvar-watchlist null) (define-settable envvar-watchlist null)
(define-settable preproc-source-ext 'pp) (define-settable-not preproc-source-ext 'pp)
(define-settable markup-source-ext 'pm) (define-settable-not markup-source-ext 'pm)
(define-settable markdown-source-ext 'pmd) (define-settable-not markdown-source-ext 'pmd)
(define-settable null-source-ext 'p) (define-settable-not null-source-ext 'p)
(define-settable pagetree-source-ext 'ptree) (define-settable-not pagetree-source-ext 'ptree)
(define-settable template-source-ext 'pt) (define-settable-not template-source-ext 'pt)
(define-settable scribble-source-ext 'scrbl) (define-settable-not scribble-source-ext 'scrbl)
;; these are deliberately not settable because they're just internal signalers, no effect on external interface ;; these are deliberately not settable because they're just internal signalers, no effect on external interface
(define+provide default-mode-auto 'auto) (define+provide default-mode-auto 'auto)
@ -75,8 +86,8 @@
(define+provide default-mode-template 'template) (define+provide default-mode-template 'template)
(define-settable old-cache-names '("pollen.cache" "pollen-cache")) (define-settable old-cache-names '("pollen.cache" "pollen-cache"))
(define-settable cache-dir-name "compiled") (define-settable-not cache-dir-name "compiled")
(define-settable cache-subdir-name "pollen") (define-settable-not cache-subdir-name "pollen")
(define+provide default-cache-names (list* (cache-dir-name) (old-cache-names))) (define+provide default-cache-names (list* (cache-dir-name) (old-cache-names)))
(define-settable decodable-extensions (list (markup-source-ext) (pagetree-source-ext))) (define-settable decodable-extensions (list (markup-source-ext) (pagetree-source-ext)))
@ -88,14 +99,14 @@
(define-settable command-char #\◊) (define-settable command-char #\◊)
(define-settable template-command-char #\∂) (define-settable template-command-char #\∂)
(define-settable template-prefix "template") (define-settable-not template-prefix "template")
(define-settable fallback-template-prefix "fallback") (define-settable-not fallback-template-prefix "fallback")
(define-settable template-meta-key "template") (define-settable-not template-meta-key "template")
(define-settable main-export 'doc) ; don't forget to change fallback template too (define-settable-not main-export 'doc) ; don't forget to change fallback template too
(define-settable meta-export 'metas) (define-settable-not meta-export 'metas)
(define-settable meta-tag-name 'meta) (define-settable-not meta-tag-name 'meta)
(define-settable define-meta-name 'define-meta) (define-settable-not define-meta-name 'define-meta)
;; tags from https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements ;; tags from https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements
(define-settable block-tags (cons (main-root-node) '(address article aside blockquote body canvas dd div dl fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hgroup hr li main nav noscript ol output p pre section table tfoot ul video))) (define-settable block-tags (cons (main-root-node) '(address article aside blockquote body canvas dd div dl fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hgroup hr li main nav noscript ol output p pre section table tfoot ul video)))
@ -141,7 +152,7 @@
(define-settable here-path-key 'here-path) (define-settable here-path-key 'here-path)
(define-settable poly-source-ext 'poly) ; extension that signals source can be used for multiple output targets (define-settable-not poly-source-ext 'poly) ; extension that signals source can be used for multiple output targets
(define-settable poly-targets '(html)) ; current target applied to multi-output source files (define-settable poly-targets '(html)) ; current target applied to multi-output source files
(define+provide current-poly-target (make-parameter (car (poly-targets)))) (define+provide current-poly-target (make-parameter (car (poly-targets))))

@ -1,44 +0,0 @@
#lang at-exp racket/base
(require rackunit racket/port racket/system racket/runtime-path compiler/find-exe pollen/setup)
;; define-runtime-path only allowed at top level
(define-runtime-path override-dir "data/override")
(define-runtime-path test.ptree "data/override/test.ptree")
(define-runtime-path test.html.pm "data/override/test.html.pm")
(define-runtime-path test.html.pmd "data/override/test.html.pmd")
(define-runtime-path test.html.pp "data/override/test.html.pp")
(define-runtime-path test.ptreeover "data/override/test.ptreeover")
(define-runtime-path test.html.pmover "data/override/test.html.pmover")
(define-runtime-path test.html.pmdover "data/override/test.html.pmdover")
(define-runtime-path test.html.ppover "data/override/test.html.ppover")
(define-runtime-path test-cmd.html.ppover "data/override/test-cmd.html.ppover")
(define-runtime-path test-exports.html.ppover "data/override/test-exports.html.ppover")
(define-runtime-path test-require.html.pmover "data/override/test-require.html.pmover")
;; `find-exe` avoids reliance on $PATH of the host system
(define racket-path (find-exe))
;; parameterize needed to pick up override file
(parameterize ([current-directory override-dir]
[current-project-root override-dir])
(when racket-path
(define (run path)
(define cmd-string (format "'~a' ~a" racket-path path))
(with-output-to-string (λ () (system cmd-string))))
;; raco is in same dir as racket
(define path-to-raco (path->string (simplify-path (build-path (find-exe) 'up "raco"))))
;; files with ordinary extensions will not be recognized in override dir, and thus behave like preproc
(check-equal? (run test.ptree) "test\n====")
(check-equal? (run test.html.pm) "test\n====")
(check-equal? (run test.html.pmd) "test\n====")
(check-equal? (run test.html.pp) "test\n====")
(check-equal? (run test.ptreeover) "'(pagetree-root test ====)")
(check-equal? (run test.html.pmover) "'(rootover \"test\" \"\\n\" \"====\")")
(check-equal? (run test.html.pmdover) "'(rootover (h1 ((id \"test\")) \"test\"))")
(check-equal? (run test.html.ppover) "test\n====")
(check-equal? (run test-cmd.html.ppover) "2")
(check-equal? (dynamic-require test-exports.html.ppover 'docover) "2")
(check-equal? (hash-ref (dynamic-require test-exports.html.ppover 'metasover) 'dog) "Roxy")
(check-equal? (dynamic-require test-require.html.pmover 'docover) '(rootover "foobar"))))
Loading…
Cancel
Save