scribble: add --dest-base flag

Also add the option to `render' from `racket/render', and
document the existing `render%' initialization argument.

original commit: f9b4c6b2268440e9e74b414e6e0b1487981c70df
This commit is contained in:
Matthew Flatt 2012-07-06 16:32:45 -06:00
parent 5cb1ba3a4a
commit d23768ba32
4 changed files with 27 additions and 7 deletions

View File

@ -14,6 +14,7 @@
(#:render-mixin (#:render-mixin
(class? . -> . class?) (class? . -> . class?)
#:dest-dir (or/c #f path-string?) #:dest-dir (or/c #f path-string?)
#:helper-file-prefix (or/c #f string?)
#:prefix-file (or/c #f path-string?) #:prefix-file (or/c #f path-string?)
#:style-file (or/c #f path-string?) #:style-file (or/c #f path-string?)
#:style-extra-files (listof path-string?) #:style-extra-files (listof path-string?)
@ -30,6 +31,7 @@
names names
#:render-mixin [render-mixin html:render-mixin] #:render-mixin [render-mixin html:render-mixin]
#:dest-dir [dest-dir #f] #:dest-dir [dest-dir #f]
#:helper-file-prefix [helper-file-prefix #f]
#:prefix-file [prefix-file #f] #:prefix-file [prefix-file #f]
#:style-file [style-file #f] #:style-file [style-file #f]
#:style-extra-files [style-extra-files null] #:style-extra-files [style-extra-files null]
@ -47,7 +49,8 @@
[prefix-file prefix-file] [prefix-file prefix-file]
[style-file style-file] [style-file style-file]
[style-extra-files style-extra-files] [style-extra-files style-extra-files]
[extra-files extra-files])]) [extra-files extra-files]
[helper-file-prefix helper-file-prefix])])
(when redirect (when redirect
(send renderer set-external-tag-path redirect)) (send renderer set-external-tag-path redirect))
(when redirect-main (when redirect-main

View File

@ -25,6 +25,7 @@
(define current-redirect (make-parameter #f)) (define current-redirect (make-parameter #f))
(define current-redirect-main (make-parameter #f)) (define current-redirect-main (make-parameter #f))
(define current-quiet (make-parameter #f)) (define current-quiet (make-parameter #f))
(define helper-file-prefix (make-parameter #f))
(define (read-one str) (define (read-one str)
(let ([i (open-input-string str)]) (let ([i (open-input-string str)])
@ -58,6 +59,8 @@
(current-dest-directory dir)] (current-dest-directory dir)]
[("--dest-name") name "write output as <name>" [("--dest-name") name "write output as <name>"
(current-dest-name name)] (current-dest-name name)]
[("--dest-base") prefix "start support-file names with <prefix>"
(helper-file-prefix prefix)]
#:multi #:multi
[("++style") file "add given .css/.tex file after others" [("++style") file "add given .css/.tex file after others"
(current-style-extra-files (cons file (current-style-extra-files)))] (current-style-extra-files (cons file (current-style-extra-files)))]
@ -100,6 +103,9 @@
files)))) files))))
(define (build-docs docs files) (define (build-docs docs files)
(when (and (current-dest-name)
((length files) . > . 1))
(raise-user-error 'scribble "cannot supply a destination name with multiple inputs"))
(render docs (render docs
(map (lambda (fn) (map (lambda (fn)
(let-values ([(base name dir?) (split-path fn)]) (let-values ([(base name dir?) (split-path fn)])
@ -111,6 +117,7 @@
#:style-file (current-style-file) #:style-file (current-style-file)
#:style-extra-files (reverse (current-style-extra-files)) #:style-extra-files (reverse (current-style-extra-files))
#:extra-files (reverse (current-extra-files)) #:extra-files (reverse (current-extra-files))
#:helper-file-prefix (helper-file-prefix)
#:redirect (current-redirect) #:redirect (current-redirect)
#:redirect-main (current-redirect-main) #:redirect-main (current-redirect-main)
#:quiet? (current-quiet) #:quiet? (current-quiet)

View File

@ -43,6 +43,7 @@ function to render a document.
[names (listof path-string?)] [names (listof path-string?)]
[#:render-mixin render-mixin (class? . -> . class?) @#,html:render-mixin] [#:render-mixin render-mixin (class? . -> . class?) @#,html:render-mixin]
[#:dest-dir dest-dir (or/c #f path-string?) #f] [#:dest-dir dest-dir (or/c #f path-string?) #f]
[#:helper-file-prefix helper-file-prefix (or/c #f string?) #f]
[#:prefix-file prefix-file (or/c #f path-string?) #f] [#:prefix-file prefix-file (or/c #f path-string?) #f]
[#:style-file style-file (or/c #f path-string?) #f] [#:style-file style-file (or/c #f path-string?) #f]
[#:style-extra-files style-extra-files (listof path-string?) #f] [#:style-extra-files style-extra-files (listof path-string?) #f]
@ -68,9 +69,10 @@ The @racket[dest-dir] argument determines the output directory, which
is created using @racket[make-directory*] if it is non-@racket[#f] and is created using @racket[make-directory*] if it is non-@racket[#f] and
does not exist already. does not exist already.
The @racket[prefix-file], @racket[style-file], The @racket[helper-file-prefix], @racket[prefix-file],
@racket[extra-style-files], and @racket[extra-files] arguments are @racket[style-file], @racket[extra-style-files], and
passed on to the @racket[render%] constructor. @racket[extra-files] arguments are passed on to the @racket[render%]
constructor.
The @racket[xrefs] argument provides extra cross-reference information The @racket[xrefs] argument provides extra cross-reference information
to be used during the documents' @tech{resolve pass}. The to be used during the documents' @tech{resolve pass}. The
@ -122,7 +124,8 @@ Represents a renderer.
[prefix-file (or/c path-string? #f) #f] [prefix-file (or/c path-string? #f) #f]
[style-file (or/c path-string? #f) #f] [style-file (or/c path-string? #f) #f]
[style-extra-files (listof path-string?) null] [style-extra-files (listof path-string?) null]
[extra-files (listof path-string?) null])]{ [extra-files (listof path-string?) null]
[helper-file-prefix (or/c string? #f) #f])]{
Creates a renderer whose output will go to @racket[dest-dir]. For Creates a renderer whose output will go to @racket[dest-dir]. For
example, @racket[dest-dir] could name the directory containing the example, @racket[dest-dir] could name the directory containing the
@ -148,7 +151,13 @@ styles in a formal-specific way; see @secref["config-style"] for more
information. information.
The @racket[extra-files] argument names files to be copied to the The @racket[extra-files] argument names files to be copied to the
output location, such as image files or extra configuration files.} output location, such as image files or extra configuration files.
The @racket[helper-file-prefix] argument specifies a string that is
added as a prefix to the name of each support file that is generated
or copied to the destination---not including files specified in
@racket[extra-files], but including @racket[prefix-file],
@racket[style-file], and @racket[style-extra-files].}
@defmethod[(traverse [srcs (listof part?)] @defmethod[(traverse [srcs (listof part?)]

View File

@ -45,7 +45,8 @@ its file suffix:
Use @DFlag{dest-name} to specify a @|fn| other than the default name, Use @DFlag{dest-name} to specify a @|fn| other than the default name,
but only when a single source file is provided. Use the @DFlag{dest} but only when a single source file is provided. Use the @DFlag{dest}
flag to specify a destination directory (for any number of source flag to specify a destination directory (for any number of source
files). files). Use @DFlag{dest-base} to add a prefix to the name of each
support file that is generated or copied to the destination.
After all flags, provide one or more document sources. When multiple After all flags, provide one or more document sources. When multiple
documents are rendered at the same time, cross-reference information documents are rendered at the same time, cross-reference information