1 ;;;; document-markup.scm -- part of generated backend documentation
3 ;;;; source file of the GNU LilyPond music typesetter
5 ;;;; (c) 1998--2006 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
8 (define (music-props-doc)
10 #:name "Music properties"
11 #:desc "All music properties, including descriptions"
13 (let* ((ps (sort (map symbol->string all-music-properties) string<?))
14 (descs (map (lambda (prop)
15 (property->texi 'music (string->symbol prop)))
17 (texi (description-list->texi descs)))
20 (define music-types->names (make-vector 61 '()))
22 (let* ((types (cdr (assoc 'types (cdr entry)))))
24 (hashq-set! music-types->names type
26 (hashq-ref music-types->names type '()))))
30 (define (strip-description x)
31 (cons (symbol->string (car x))
34 (define (music-type-doc entry)
36 #:name (symbol->string (car entry))
39 "\nMusic event type @code{"
40 (symbol->string (car entry))
41 "} is in Music objects of type "
44 (map (lambda (x) (ref-ify (symbol->string x)))
45 (cdr entry)) string<?))
51 (map ly:translator-name
53 (lambda (x) (engraver-accepts-music-type? (car entry) x)) all-engravers-list)))))
56 (define (music-types-doc)
58 #:name "Music classes"
62 (hash-table->alist music-types->names) alist<?))))
64 (define (music-doc-str obj)
65 (let* ((namesym (car obj))
67 (types (cdr (assoc 'types props))))
70 (object-property namesym 'music-description)
72 (human-listify (map ref-ify (map symbol->string types)))
77 (map symbol->string (map ly:translator-name
79 (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list)))))
81 (description-list->texi
83 (lambda (x) (property->texi 'music x props))
86 (define (music-object-doc obj)
88 #:name (symbol->string (car obj))
89 #:text (music-doc-str obj)))
91 (define (music-expressions-doc)
93 #:name "Music expressions"
94 #:desc "Objects that represent music."
96 (map music-object-doc music-descriptions)))
98 (define (music-doc-node)
100 #:name "Music definitions"
101 #:desc "Definition of the Input data structures"
104 (music-expressions-doc)