1 (eval-string (ly-gulp-file "translator-description.scm"))
3 (define (document-trans-property prop-desc)
4 (string-append "<li><code>" (car prop-desc) "</code>"
5 " (" (type-name (cadr prop-desc)) "):"
10 (define (document-engraver engraver-descr)
13 (props (car (cdddr engraver-descr)))
14 (name (car engraver-descr))
15 (desc (cadr engraver-descr))
16 (objs (caddr engraver-descr))
19 "<hr><h2>" name "</h2><p>\n"
25 "<h3>Properties</h3>\n<ul>\n"
27 (map (lambda (x) (document-trans-property x)) props)
34 "This engraver creates \n "
35 (human-listify (map urlfy objs))
43 (define (document-engraver-by-name name)
46 (eg (assoc (string->symbol name) engraver-description-alist))
50 (string-append "Engraver " name ", not documented.\n")
51 (document-engraver (cdr eg))
55 (define (context-doc-string context-desc)
58 (name (cdr (assoc 'type-name context-desc)))
59 (desc-handle (assoc (string->symbol name) context-description-alist))
60 (desc (if (pair? desc-handle) (cdr desc-handle) ""))
62 (accepts (cdr (assoc 'accepts context-desc)))
64 (list (cdr (assoc 'group-type context-desc)))
65 (cdr (assoc 'consists context-desc))
66 (cdr (assoc 'end-consists context-desc))
71 "<h1>Context " name "</h1>\n"
75 "This context is a `bottom' context; it can not contain other contexts."
77 name " can contain \n"
78 (human-listify (map urlfy accepts))
80 "<p>This context is built from the following engravers\n"
82 (map document-engraver-by-name consists)
89 ;; FIXME element ChordNames overwrites context ChordNames.
90 (define (document-context context-desc)
93 (name (cdr (assoc 'type-name context-desc)))
94 (docstr (context-doc-string context-desc))
95 (outname (string-append name ".html"))
96 (out (open-output-file outname))
101 (string-append "<title>LilyPond Context " name " </title>"
110 (define (document-paper paper-alist)
111 ; (write paper-alist)
114 (names (sort (map car paper-alist) string<?))
115 (contexts (map cdr paper-alist))
116 (files (map document-context contexts))
117 (outname (string-append "contexts.html"))
118 (out (open-output-file outname))
119 (l (map (lambda (x) (string-append
126 "<title>LilyPond interpretation context documentation</title>"
127 "<h1>LilyPond interpretation context documentation</h1>"
129 (apply string-append l)
137 (define (document-engraver-separately desc)
140 (outname (string-append name ".html"))
141 (out (open-output-file outname))
142 (doc (document-engraver desc))
145 (writing-wip outname)
150 (define (document-all-engravers)
153 (descs (map cdr engraver-description-alist))
154 (names (map car engraver-description-alist))
155 (fnames (map document-engraver-separately descs))
156 (outname "engravers.html")
157 (out (open-output-file outname))
162 "<title>All LilyPond engravers</title>"
163 "<h1>All LilyPond engravers</h1>"
166 (map (lambda (x) (string-append "<li>" x))
172 ; (display (document-engraver 'Stem_engraver))
176 ;(display (human-listify '("a" "b" "c")))
178 (document-paper (My_lily_parser::paper_description))
179 (document-all-engravers)