1 ;;;; document-markup.scm -- part of generated backend documentation
3 ;;;; source file of the GNU LilyPond music typesetter
5 ;;;; (c) 1998--2004 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"
14 (ps (sort (map symbol->string all-music-properties) string<?))
15 (descs (map (lambda (prop)
16 (property->texi 'music (string->symbol prop)))
18 (texi (description-list->texi descs))
23 (define music-types->names (make-vector 61 '()))
27 (types (cdr (assoc 'types (cdr entry) )))
30 (hashq-set! music-types->names type
32 (hashq-ref music-types->names type '())))
41 (define (strip-description x)
42 (cons (symbol->string (car x))
45 (define (music-type-doc entry)
47 #:name (symbol->string (car entry))
50 "\nMusic event type @code{"
51 (symbol->string (car entry))
52 "} is in Music objects of type "
55 (map (lambda (x) (ref-ify (symbol->string x)))
56 (cdr entry)) string<?))
62 (map ly:translator-name
64 (lambda (x) (engraver-accepts-music-type? (car entry) x)) all-engravers-list)))))
68 (define (music-types-doc)
70 #:name "Music classes"
74 (hash-table->alist music-types->names) alist<?))
77 (define (music-doc-str obj)
82 (types (cdr (assoc 'types props)))
86 (object-property namesym 'music-description)
88 (human-listify (map ref-ify (map symbol->string types)))
93 (map symbol->string (map ly:translator-name
95 (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list)))))
97 (description-list->texi
99 (lambda (x) (property->texi 'music x props))
105 (define (music-object-doc obj)
107 #:name (symbol->string (car obj))
108 #:text (music-doc-str obj)
111 (define (music-expressions-doc)
113 #:name "Music expressions"
114 #:desc "Objects that represent music."
116 (map music-object-doc music-descriptions)
119 (define (music-doc-node)
121 #:name "Music definitions"
122 #:desc "Definition of the Input data structures"
125 (music-expressions-doc)