hyper-literate/scribble-lib/scribble/private/defaults.rkt
2016-05-28 02:32:40 -05:00

48 lines
2.1 KiB
Racket

#lang scheme/base
(require scribble/core
scribble/latex-properties
scribble/html-properties
setup/collects)
(provide scribble-file
downloaded-file
add-defaults)
(define (add-property properties pred new)
(if (ormap pred properties)
properties
(cons new properties)))
(define (scribble-file s)
(path->collects-relative (collection-file-path s "scribble")))
(define (downloaded-file s)
(build-path (find-system-path 'addon-dir) s))
(define (add-defaults doc pfx styl extras version?
#:html [html #f]
#:properties [properties null]
#:replacements [replacements #F])
(struct-copy part doc [style (make-style (style-name (part-style doc))
((if version? add-property (lambda (x y z) x))
(add-property
((if html add-property (lambda (x y z) x))
(append
(style-properties (part-style doc))
properties)
html-defaults?
html)
latex-defaults?
(if replacements
(make-latex-defaults+replacements
pfx
styl
extras
replacements)
(make-latex-defaults
pfx
styl
extras)))
document-version?
(make-document-version (version))))]))