svn: r9362

original commit: 82c212625b41758f99920900d0477d37b4414504
This commit is contained in:
Matthew Flatt 2008-04-18 18:49:23 +00:00
parent 829f905ac9
commit 6a20d8c2fa
5 changed files with 51 additions and 47 deletions

View File

@ -407,31 +407,35 @@
;; ---------------------------------------- ;; ----------------------------------------
(define/private (do-table-of-contents part ri delta quiet) (define/private (do-table-of-contents part ri delta quiet depth)
(make-table #f (generate-toc part (make-table #f (generate-toc part
ri ri
(+ delta (+ delta
(length (collected-info-number (length (collected-info-number
(part-collected-info part ri)))) (part-collected-info part ri))))
#t #t
quiet))) quiet
depth)))
(define/public (table-of-contents part ri) (define/public (table-of-contents part ri)
(do-table-of-contents part ri -1 not)) (do-table-of-contents part ri -1 not +inf.0))
(define/public (local-table-of-contents part ri) (define/public (local-table-of-contents part ri style)
(table-of-contents part ri)) (do-table-of-contents part ri -1 not (if (eq? style 'immediate-only)
1
+inf.0)))
(define/public (quiet-table-of-contents part ri) (define/public (quiet-table-of-contents part ri)
(do-table-of-contents part ri 1 (lambda (x) #t))) (do-table-of-contents part ri 1 (lambda (x) #t) +inf.0))
(define/private (generate-toc part ri base-len skip? quiet) (define/private (generate-toc part ri base-len skip? quiet depth)
(let* ([number (collected-info-number (part-collected-info part ri))] (let* ([number (collected-info-number (part-collected-info part ri))]
[subs [subs
(if (quiet (and (part-style? part 'quiet) (if (and (quiet (and (part-style? part 'quiet)
(not (= base-len (sub1 (length number)))))) (not (= base-len (sub1 (length number))))))
(positive? depth))
(apply append (map (lambda (p) (apply append (map (lambda (p)
(generate-toc p ri base-len #f quiet)) (generate-toc p ri base-len #f quiet (sub1 depth)))
(part-parts part))) (part-parts part)))
null)]) null)])
(if skip? (if skip?

View File

@ -170,13 +170,13 @@
(define (clean-up s) (define (clean-up s)
;; Remove leading spaces, which might appear there due to images or something ;; Remove leading spaces, which might appear there due to images or something
;; else that gets dropped in string form. ;; else that gets dropped in string form.
(regexp-replace* #rx"^ +" s "")) (regexp-replace #rx"^ +" s ""))
(define (record-index word-seq element-seq tag content) (define (record-index word-seq element-seq tag content)
(make-index-element #f (make-index-element #f
(list (make-target-element #f content `(idx ,tag))) (list (make-target-element #f content `(idx ,tag)))
`(idx ,tag) `(idx ,tag)
(map clean-up word-seq) word-seq
element-seq element-seq
#f)) #f))
@ -191,7 +191,7 @@
(define (as-index . s) (define (as-index . s)
(let ([key (make-generated-tag)] (let ([key (make-generated-tag)]
[content (decode-content s)]) [content (decode-content s)])
(record-index (list (content->string content)) (record-index (list (clean-up (content->string content)))
(if (= 1 (length content)) (if (= 1 (length content))
content content
(list (make-element #f content))) (list (make-element #f content)))
@ -294,7 +294,7 @@
(lambda (renderer part ri) (lambda (renderer part ri)
(send renderer table-of-contents part ri)))) (send renderer table-of-contents part ri))))
(define (local-table-of-contents) (define (local-table-of-contents #:style [style #f])
(make-delayed-block (make-delayed-block
(lambda (renderer part ri) (lambda (renderer part ri)
(send renderer local-table-of-contents part ri)))) (send renderer local-table-of-contents part ri style))))

View File

@ -89,7 +89,7 @@
(cons (make-index-element (cons (make-index-element
#f null (car tags) #f null (car tags)
(list (regexp-replace (list (regexp-replace
#px"^(?:A|An|The)\\s" (content->string title) "")) #px"^\\s+(?:(?:A|An|The)\\s)?" (content->string title) ""))
(list (make-element #f title)) (list (make-element #f title))
(make-part-index-desc)) (make-part-index-desc))
l) l)

View File

@ -889,7 +889,7 @@
(cond (cond
[(string? i) [(string? i)
(let ([m (and (extra-breaking?) (let ([m (and (extra-breaking?)
(regexp-match-positions #rx"[-:/+]" i))]) (regexp-match-positions #rx"[-:/+_]|[a-z](?=[A-Z])" i))])
(if m (if m
(list* (substring i 0 (cdar m)) (list* (substring i 0 (cdar m))
;; Most browsers wrap after a hyphen. The ;; Most browsers wrap after a hyphen. The

View File

@ -382,7 +382,7 @@
;; FIXME: isn't local to the section ;; FIXME: isn't local to the section
(make-toc-paragraph null)) (make-toc-paragraph null))
(define/override (local-table-of-contents part ri) (define/override (local-table-of-contents part ri style)
(make-paragraph null)) (make-paragraph null))
;; ---------------------------------------- ;; ----------------------------------------