From c4d2882557286b4c79c5f88d7918f7fc233ad1ec Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 13 Nov 2007 14:15:28 +0000 Subject: [PATCH] better start-doc implementation, including alphabetizing list svn: r7710 --- collects/scribble/base-render.ss | 8 --- collects/scribble/html-render.ss | 1 - collects/scribble/struct.ss | 17 ++++++- collects/scribblings/scribble/struct.scrbl | 4 +- collects/scribblings/start/start.scrbl | 58 ++++++++++++++-------- doc/release-notes/mzscheme/MzScheme_4.txt | 3 ++ 6 files changed, 59 insertions(+), 32 deletions(-) diff --git a/collects/scribble/base-render.ss b/collects/scribble/base-render.ss index 995509a5c5..eb2154c3d9 100644 --- a/collects/scribble/base-render.ss +++ b/collects/scribble/base-render.ss @@ -34,14 +34,6 @@ (substring s 0 (sub1 (string-length s)))) sep))) - (define/public (strip-aux content) - (cond - [(null? content) null] - [(aux-element? (car content)) - (strip-aux (cdr content))] - [else (cons (car content) - (strip-aux (cdr content)))])) - ;; ---------------------------------------- ;; marshal info diff --git a/collects/scribble/html-render.ss b/collects/scribble/html-render.ss index 5440457693..b74aad41de 100644 --- a/collects/scribble/html-render.ss +++ b/collects/scribble/html-render.ss @@ -63,7 +63,6 @@ install-file get-dest-directory format-number - strip-aux quiet-table-of-contents) (define/override (get-suffix) #".html") diff --git a/collects/scribble/struct.ss b/collects/scribble/struct.ss index c3a24062a5..800125a262 100644 --- a/collects/scribble/struct.ss +++ b/collects/scribble/struct.ss @@ -270,7 +270,8 @@ ;; ---------------------------------------- (provide content->string - element->string) + element->string + strip-aux) (define content->string (case-lambda @@ -297,12 +298,26 @@ [else (format "~s" c)])])] [(c renderer sec ri) (cond + [(and (link-element? c) + (null? (element-content c))) + (let ([dest (resolve-get sec ri (link-element-tag c))]) + (if dest + (content->string (strip-aux (cadr dest)) renderer sec ri) + "???"))] [(element? c) (content->string (element-content c) renderer sec ri)] [(delayed-element? c) (content->string (delayed-element-content c ri) renderer sec ri)] [else (element->string c)])])) + (define (strip-aux content) + (cond + [(null? content) null] + [(aux-element? (car content)) + (strip-aux (cdr content))] + [else (cons (car content) + (strip-aux (cdr content)))])) + ;; ---------------------------------------- (provide flow-element-width diff --git a/collects/scribblings/scribble/struct.scrbl b/collects/scribblings/scribble/struct.scrbl index 54b60d61ec..848226d3ee 100644 --- a/collects/scribblings/scribble/struct.scrbl +++ b/collects/scribblings/scribble/struct.scrbl @@ -453,7 +453,7 @@ A placeholder for a tag to be generated during the @scheme{collect @defproc*[([(content->string (content list?)) string?] - [(content->string (content list?) (p part?) (info resolve-info?)) string?])]{ + [(content->string (content list?) (renderer any/c) (p part?) (info resolve-info?)) string?])]{ Converts a list of elements to a single string (essentially rendering the content as ``plain text''). @@ -465,7 +465,7 @@ element (if it has not been forced already).} @defproc*[([(element->string (element any/c)) string?] - [(element->string (element any/c) (p part?) (info resolve-info?)) string?])]{ + [(element->string (element any/c) (renderer any/c) (p part?) (info resolve-info?)) string?])]{ Like @scheme[content->string], but for a single element. } diff --git a/collects/scribblings/start/start.scrbl b/collects/scribblings/start/start.scrbl index 9c02a8e66c..3a47bdbcc7 100644 --- a/collects/scribblings/start/start.scrbl +++ b/collects/scribblings/start/start.scrbl @@ -1,18 +1,27 @@ #lang scribble/doc @require[scribble/manual scribble/struct - setup/getinfo - setup/main-collects] + setup/getinfo] @title{PLT Scheme Documentation} @begin[ +(define (resolve s) + (resolved-module-path-name + (module-path-index-resolve + (module-path-index-join `(lib ,(string-append s ".scrbl") + "scribblings" + ,s) + #f)))) + (define initial-ones - '("(collects . scribblings/quick/quick.scrbl):top" - blank - "(collects . scribblings/guide/guide.scrbl):top" - "(collects . scribblings/reference/reference.scrbl):top" - blank)) + (list (resolve "quick") + 'blank + (resolve "guide") + (resolve "reference") + 'blank + (resolve "gui") + 'blank)) (let* ([dirs (find-relevant-directories '(scribblings))] [infos (map get-info/full dirs)] @@ -21,22 +30,31 @@ (let ([s (i 'scribblings)]) (map (lambda (d) (if (pair? d) - (format "~a:top" - (path->main-collects-relative - (build-path dir (car d)))) - (format "bad: ~s" d))) + (build-path dir (car d)) + (build-path dir "???"))) s))) infos - dirs))]) - (make-table - #f - (map (lambda (doc) + dirs))] + [line + (lambda (doc) (list (make-flow (list (make-paragraph (list (if (eq? doc 'blank) (hspace 1) - (secref doc)))))))) - (append initial-ones - (remove* initial-ones - (remove "(collects . scribblings/start/start.scrbl):top" - docs)))))) + (secref #:doc doc "top"))))))))]) + + (make-delayed-flow-element + (lambda (renderer part resolve-info) + (make-table + #f + (append (map line initial-ones) + (sort + (map line + (remove* initial-ones + (remove (resolve "start") + docs))) + (lambda (a b) + (let ([a (car (paragraph-content (car (flow-paragraphs (car a)))))] + [b (car (paragraph-content (car (flow-paragraphs (car b)))))]) + (string-cistring a renderer part resolve-info) + (element->string b renderer part resolve-info)))))))))) ] diff --git a/doc/release-notes/mzscheme/MzScheme_4.txt b/doc/release-notes/mzscheme/MzScheme_4.txt index 1aef6804ab..b2513b1383 100644 --- a/doc/release-notes/mzscheme/MzScheme_4.txt +++ b/doc/release-notes/mzscheme/MzScheme_4.txt @@ -100,6 +100,9 @@ in several significant ways: "x.ss" is now named "x_ss.zo". The "_loader" protocol for native-code extensions is no longer supported. + - Windows console binary names are converted like Unix binary names: + downcased with " " replaced by "-". + ====================================================================== Immutable and Mutable Pairs ======================================================================