]> git.donarmstrong.com Git - lilypond.git/blobdiff - ly/toc-init.ly
Issue 5148/1: Various chain-assoc-get -> #:properties
[lilypond.git] / ly / toc-init.ly
index 5511ed4689fcd4a4f13be5494d12dfb64dcc610f..ad7c64b72c5e421876ed74796e6a9ca37ba57921 100644 (file)
@@ -1,4 +1,4 @@
-\version "2.16.0"
+\version "2.19.22"
 
 %% defined later, in a closure
 #(define-public (add-toc-item! markup-symbol text)
@@ -7,24 +7,25 @@
   #f)
 
 #(let ((toc-item-list (list)))
+   (call-after-session (lambda () (set! toc-item-list '())))
    (set! add-toc-item!
-        (lambda (markup-symbol text)
-          (let ((label (gensym "toc")))
-            (set! toc-item-list
-                  (cons (list label markup-symbol text)
-                        toc-item-list))
-            (make-music 'EventChord
-              'page-marker #t
-              'page-label label
-              'elements (list (make-music 'LabelEvent
-                                'page-label label))))))
+         (lambda (markup-symbol text)
+           (let ((label (gensym "toc")))
+             (set! toc-item-list
+                   (cons (list label markup-symbol text)
+                         toc-item-list))
+             (make-music 'EventChord
+               'page-marker #t
+               'page-label label
+               'elements (list (make-music 'LabelEvent
+                                 'page-label label))))))
    (set! toc-items (lambda ()
-                    (reverse toc-item-list))))
+                     (reverse toc-item-list))))
 
 \paper {
   tocTitleMarkup = \markup \huge \column {
     \fill-line { \null "Table of Contents" \null }
-    \hspace #1
+    \null
   }
   tocItemMarkup = \markup \fill-line {
     \fromproperty #'toc:text \fromproperty #'toc:page
@@ -35,29 +36,30 @@ tocItemWithDotsMarkup = \markup \fill-with-pattern #1 #RIGHT .
   \fromproperty #'toc:text \fromproperty #'toc:page
 
 #(define-markup-list-command (table-of-contents layout props) ()
+  #:properties ((baseline-skip))
   ( _i "Outputs the table of contents, using the paper variable
 @code{tocTitleMarkup} for its title, then the list of lines
 built using the @code{tocItem} music function
 Usage: @code{\\markuplist \\table-of-contents}" )
   (cons (interpret-markup layout props
-                         (ly:output-def-lookup layout 'tocTitleMarkup))
-       (space-lines (chain-assoc-get 'baseline-skip props)
-                   (map (lambda (toc-item)
-                          (let ((label (car toc-item))
-                                (toc-markup (cadr toc-item))
-                                (text (caddr toc-item)))
-                            (interpret-markup
-                              layout
-                              (cons (list (cons 'toc:page
-                                           (markup #:with-link label #:page-ref label "XXX" "?"))
-                                          (cons 'toc:text (markup #:with-link label text))
-                                          (cons 'toc:label label))
-                                    props)
-                              (ly:output-def-lookup layout toc-markup))))
-                        (toc-items)))))
+                          (ly:output-def-lookup layout 'tocTitleMarkup))
+        (space-lines baseline-skip
+                    (map (lambda (toc-item)
+                           (let ((label (car toc-item))
+                                 (toc-markup (cadr toc-item))
+                                 (text (caddr toc-item)))
+                             (interpret-markup
+                               layout
+                               (cons (list (cons 'toc:page
+                                            (markup #:with-link label #:page-ref label "XXX" "?"))
+                                           (cons 'toc:text (markup #:with-link label text))
+                                           (cons 'toc:label label))
+                                     props)
+                               (ly:output-def-lookup layout toc-markup))))
+                         (toc-items)))))
 
-tocItem = 
-#(define-music-function (parser location text) (markup?)
+tocItem =
+#(define-music-function (text) (markup?)
    "Add a line to the table of content, using the @code{tocItemMarkup} paper
 variable markup"
    (add-toc-item! 'tocItemMarkup text))