44 lines
1.5 KiB
Plaintext
44 lines
1.5 KiB
Plaintext
|
appendix =
|
||
|
#(define-void-function (parser location title) (markup?)
|
||
|
(define (appendix-item->markup layout props appendix-item)
|
||
|
(interpret-markup layout props
|
||
|
(markup
|
||
|
#:override (cons 'appendixItem:heading (assoc-ref appendix-item "heading"))
|
||
|
#:override (cons 'appendixItem:text (assoc-ref appendix-item "text"))
|
||
|
(ly:output-def-lookup layout 'appendixItemMarkup))))
|
||
|
(ly:book-add-bookpart! (ly:parser-lookup '$current-book)
|
||
|
#{
|
||
|
\bookpart {
|
||
|
\markup { #title }
|
||
|
#(for-each
|
||
|
(lambda (item)
|
||
|
(add-score (ly:make-page-label-marker (string->symbol (car item))))
|
||
|
(add-text
|
||
|
(make-on-the-fly-markup
|
||
|
(lambda (layout props arg) (appendix-item->markup layout props (cdr item)))
|
||
|
(make-null-markup)))
|
||
|
)
|
||
|
(reverse APPENDIX_DATA))
|
||
|
}
|
||
|
#}))
|
||
|
|
||
|
#(define-markup-command (appendix-ref layout props label) (symbol?)
|
||
|
"call page-ref to appendix-item"
|
||
|
(interpret-markup layout props
|
||
|
(markup #:with-link label
|
||
|
#:override (cons 'appendixPage (make-page-ref-markup label "XXX" "?"))
|
||
|
(ly:output-def-lookup layout 'appendixReferenceMarkup))))
|
||
|
|
||
|
\paper {
|
||
|
appendixItemMarkup = \markup {
|
||
|
\left-column {
|
||
|
\line { \large \bold \fromproperty #'appendixItem:heading }
|
||
|
\vspace #0.2
|
||
|
\sans \wordwrap-field #'appendixItem:text
|
||
|
\vspace #0.7
|
||
|
}
|
||
|
}
|
||
|
appendixReferenceMarkup = \markup {
|
||
|
\fromproperty #'appendixPage
|
||
|
}
|
||
|
}
|