Skip to content

Commit 72c2da1

Browse files
committed
export toc xexpr
temporary code, for investigation of toc structure
1 parent be3944d commit 72c2da1

File tree

1 file changed

+53
-45
lines changed

1 file changed

+53
-45
lines changed

scribble-lib/scribble/html-render.rkt

Lines changed: 53 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
version ; string? version number
3838
tags ; (listof string?)
3939
tocset ; (list?)
40+
tocset-xexpr
4041
article ; xexpr?
4142
) #:prefab)
4243

@@ -861,53 +862,57 @@
861862
(if (null? ps)
862863
null
863864
(list
864-
(get-onthispage-label)
865-
"tocsublist"
866-
(map (lambda (p)
867-
(let ([p (vector-ref p 0)]
868-
[prefixes (vector-ref p 1)]
869-
[from-d (vector-ref p 2)]
870-
[add-tag-prefixes
871-
(lambda (t prefixes)
872-
(if (null? prefixes)
873-
t
874-
(cons (car t) (append prefixes (cdr t)))))])
875-
(list
876-
(if (part? p)
877-
(format-number
878-
(collected-info-number
879-
(part-collected-info p ri))
865+
box-class
866+
(list
867+
(get-onthispage-label)
868+
"tocsublist"
869+
(map (lambda (p)
870+
(let ([p (vector-ref p 0)]
871+
[prefixes (vector-ref p 1)]
872+
[from-d (vector-ref p 2)]
873+
[add-tag-prefixes
874+
(lambda (t prefixes)
875+
(if (null? prefixes)
876+
t
877+
(cons (car t) (append prefixes (cdr t)))))])
878+
(list
879+
(if (part? p)
880+
(format-number
881+
(collected-info-number
882+
(part-collected-info p ri))
883+
null)
880884
null)
881-
null)
882-
(if (toc-element? p)
883-
(render-content (toc-element-toc-content p)
884-
from-d ri)
885-
(parameterize ([current-no-links #t]
886-
[extra-breaking? #t])
887-
(list
888-
(uri-unreserved-encode
889-
(anchor-name
890-
(add-tag-prefixes
891-
(tag-key (if (part? p)
892-
(car (part-tags/nonempty p))
893-
(target-element-tag p))
894-
ri)
895-
prefixes)))
896-
(cond
897-
[(part? p) "tocsubseclink"]
898-
[any-parts? "tocsubnonseclink"]
899-
[else "tocsublink"])
885+
(if (toc-element? p)
886+
(render-content (toc-element-toc-content p)
887+
from-d ri)
888+
(parameterize ([current-no-links #t]
889+
[extra-breaking? #t])
890+
(list
891+
(format
892+
"#~a"
893+
(uri-unreserved-encode
894+
(anchor-name
895+
(add-tag-prefixes
896+
(tag-key (if (part? p)
897+
(car (part-tags/nonempty p))
898+
(target-element-tag p))
899+
ri)
900+
prefixes))))
901+
(cond
902+
[(part? p) "tocsubseclink"]
903+
[any-parts? "tocsubnonseclink"]
904+
[else "tocsublink"])
900905

901-
(render-content
902-
(if (part? p)
903-
(strip-aux
904-
(or (part-title-content p)
905-
"???"))
906-
(if (toc-target2-element? p)
907-
(toc-target2-element-toc-content p)
908-
(element-content p)))
909-
from-d ri)))))))
910-
ps)))))
906+
(render-content
907+
(if (part? p)
908+
(strip-aux
909+
(or (part-title-content p)
910+
"???"))
911+
(if (toc-target2-element? p)
912+
(toc-target2-element-toc-content p)
913+
(element-content p)))
914+
from-d ri)))))))
915+
ps))))))
911916

912917
(define/private (render-onthispage-contents d ri top box-class sections-in-toc?)
913918
(let ([nearly-top? (lambda (d)
@@ -1173,6 +1178,9 @@
11731178
(if (part-style? d 'no-toc+aux)
11741179
null
11751180
(list-of-toc-view d ri)) ; tocset
1181+
(if (part-style? d 'no-toc+aux)
1182+
null
1183+
(render-toc-view d ri)) ; tocset-xexpr
11761184
article-xexpr ; article
11771185
))]
11781186
[else (xml:write-xexpr part-xexpr)])))))

0 commit comments

Comments
 (0)