referencable appendix
This commit is contained in:
parent
8800341e18
commit
8dfbc5ef25
44
appendix.ly
Normal file
44
appendix.ly
Normal file
@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user