48 lines
2.1 KiB
Racket
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))))]))
|