diff --git a/collects/scribble/html-render.ss b/collects/scribble/html-render.ss index da014ad2..04fcd0aa 100644 --- a/collects/scribble/html-render.ss +++ b/collects/scribble/html-render.ss @@ -200,10 +200,8 @@ [emptylabel "...search manuals..."] [dimcolor "#888"]) `(input - ([style ,(sa "width: 16em; margin: 0px; padding: 0px;" - " background-color: #eee; color: "dimcolor";" - " border: 1px solid #ddd;" - " text-align: center; vertical-align: middle;")] + ([class "searchbox"] + [style ,(sa "color: "dimcolor";")] [type "text"] [value ,emptylabel] [title "Enter a search string to search the manuals"] @@ -240,7 +238,8 @@ [style-file #f] [style-extra-files null] [script-path #f] - [script-file #f]) + [script-file #f] + [search-box? #f]) (define/override (get-suffix) #".html") @@ -555,6 +554,12 @@ d ri)))))))) ps)))))))) + (define/public (extract-version d) + (if (and (versioned-part? d) + (versioned-part-version d)) + (versioned-part-version d) + (current-version))) + (define/public (render-one-part d ri fn number) (parameterize ([current-output-file fn]) (let* ([style-file (or style-file scribble-css)] @@ -586,7 +591,8 @@ ,@(render-toc-view d ri) (div ([class "maincolumn"]) (div ([class "main"]) - ,@(render-version d ri) + ,@(parameterize ([current-version (extract-version d)]) + (render-version d ri)) ,@(navigation d ri #t) ,@(render-part d ri) ,@(navigation d ri #f)))))))))) @@ -617,6 +623,8 @@ (define/public (derive-filename d) "bad.html") + (define/public (include-navigation?) search-box?) + (define/private (navigation d ri top?) (define parent (part-parent d ri)) (define-values (prev0 next0) (find-siblings d ri)) @@ -679,7 +687,9 @@ `[onclick . ,(format "return GotoPLTRoot(\"~a\");" (version))])) (define navleft `(span ([class "navleft"]) - ,(if up-path search-box top-search-box) + ,@(if search-box? + (list (if up-path search-box top-search-box)) + null) ,@(render sep-element (and up-path (make-element top-link top-content)) @@ -724,23 +734,27 @@ (if next (titled-url "forward" next) "nonavigation") next-content))))) (define navbar - `(div ([class "navset"] - [style ,(let ([v (if top? 'bottom 'top)]) - (format "margin-~a: 2em; border-~a: ~a" - v v "2px solid #e0e0c0;"))]) + `(div ([class ,(if top? "navsettop" "navsetbottom")]) ,navleft ,navright nbsp)) ; need nbsp to make the navset bg visible - (list navbar)) + (if (include-navigation?) + (list navbar) + null)) (define/override (render-one d ri fn) (render-one-part d ri fn null)) (define/public (render-version d ri) - `((div ([class "versionbox"]) - ,@(render-content - (list (make-element "version" - (list "Version: " (current-version)))) - d - ri)))) + (let ([v (current-version)]) + (if (equal? v "") + ;; don't show empty version: + null + ;; show version: + `((div ([class "versionbox"]) + ,@(render-content + (list (make-element "version" + (list "Version: " v))) + d + ri)))))) (define/override (render-part d ri) (let ([number (collected-info-number (part-collected-info d ri))]) @@ -1130,6 +1144,8 @@ (error "file name too long (need a tag):" fn)) fn)) + (define/override (include-navigation?) #t) + (define/override (collect ds fns) (super collect ds (map (lambda (fn) (build-path fn "index.html")) fns))) @@ -1170,14 +1186,11 @@ (list p)) (inherit render-table - render-paragraph) + render-paragraph + extract-version) (define/override (render-part d ri) - (parameterize ([current-version - (if (and (versioned-part? d) - (versioned-part-version d)) - (versioned-part-version d) - (current-version))]) + (parameterize ([current-version (extract-version d)]) (let ([number (collected-info-number (part-collected-info d ri))]) (if (and (not (on-separate-page)) (or (= 1 (length number)) diff --git a/collects/scribble/latex-render.ss b/collects/scribble/latex-render.ss index 78caea2d..7f772ff4 100644 --- a/collects/scribble/latex-render.ss +++ b/collects/scribble/latex-render.ss @@ -48,11 +48,11 @@ (flow-paragraphs (part-flow d)))]) (when m (do-render-paragraph m d ri #t))) - (printf "\\titleAndVersion{") - (render-content (part-title-content d) d ri) - (printf "}{~a}\n" - (or (and (versioned-part? d) (versioned-part-version d)) - (version)))) + (let ([vers (or (and (versioned-part? d) (versioned-part-version d)) + (version))]) + (printf "\\titleAnd~aVersion{" (if (equal? vers "") "Empty" "")) + (render-content (part-title-content d) d ri) + (printf "}{~a}\n" vers))) (render-part d ri) (printf "\\postDoc\n\\end{document}\n"))) diff --git a/collects/scribble/scribble.css b/collects/scribble/scribble.css index 12b717de..9e8d516c 100644 --- a/collects/scribble/scribble.css +++ b/collects/scribble/scribble.css @@ -27,6 +27,10 @@ /* ---------------------------------------- */ +h2 { /* per-page main title */ + margin-top: 0; +} + h3, h4, h5, h6, h7, h8 { margin-top: 1.75em; margin-bottom: 0.5em; @@ -66,11 +70,21 @@ table td { /* ---------------------------------------- */ /* Navigation */ -.navset { +.navsettop, .navsetbottom { background-color: #f0f0e0; padding: 0.25em 0 0.25em 0; } +.navsettop { + margin-bottom: 1.5em; + border-bottom: 2px solid #e0e0c0; +} + +.navsetbottom { + margin-top: 2em; + border-top: 2px solid #e0e0c0; +} + .navleft { margin-left: 1ex; position: relative; @@ -87,6 +101,16 @@ table td { color: #e0e0e0; } +.searchbox { + width: 16em; + margin: 0px; + padding: 0px; + background-color: #eee; + border: 1px solid #ddd; + text-align: center; + vertical-align: middle; +} + /* ---------------------------------------- */ /* Version */ diff --git a/collects/scribble/scribble.tex b/collects/scribble/scribble.tex index d3147abc..deffa722 100644 --- a/collects/scribble/scribble.tex +++ b/collects/scribble/scribble.tex @@ -70,6 +70,7 @@ \newcommand{\smaller}[1]{{\footnotesize #1}} \newcommand{\refpara}[1]{\marginpar{\footnotesize #1}} +\newcommand{\titleAndEmptyVersion}[2]{\title{#1}\maketitle} \newcommand{\titleAndVersion}[2]{\title{#1\\{\normalsize Version #2}}\maketitle} \newcommand{\sectionNewpage}{\newpage} diff --git a/collects/scribblings/scribble/basic.scrbl b/collects/scribblings/scribble/basic.scrbl index b5c24cf5..fab7f608 100644 --- a/collects/scribblings/scribble/basic.scrbl +++ b/collects/scribblings/scribble/basic.scrbl @@ -78,7 +78,8 @@ path, it is converted to a string using @scheme[module-path-prefix->string]. The @scheme[vers] argument is propagated to the @scheme[title-decl] -structure. +structure. Use @scheme[""] as @scheme[vers] to suppress version +rendering in the output. The section title is automatically indexed by @scheme[decode-part]. For the index key, leading whitespace and a diff --git a/collects/scribblings/scribble/struct.scrbl b/collects/scribblings/scribble/struct.scrbl index 474cf659..7ad68e05 100644 --- a/collects/scribblings/scribble/struct.scrbl +++ b/collects/scribblings/scribble/struct.scrbl @@ -314,12 +314,12 @@ during the @techlink{collect pass}, the number is not rendered. Supplies a version number for this part and its sub-parts (except as overridden). A @scheme[#f] version is the same as not supplying a -version. +specific version. -The version number may be used when rendering a document. At a -minimum, a version is rendered when it is attached to a part -representing the whole document. The default version for a document is -@scheme[(version)].} +The version number that is not @scheme[""] may be used when rendering +a document. At a minimum, a non-@scheme[""] version is rendered when +it is attached to a part representing the whole document. The default +version for a document is @scheme[(version)].} @defstruct[flow ([paragraphs (listof flow-element?)])]{