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-name)
14 (eg (assoc (string->symbol engraver-name) engraver-description-alist))
15 (engraver-descr (if (eq? eg #f) '() (cdr eg)))
20 (string-append "<hr>Engraver " engraver-name ", not documented.\n")
22 "<hr><h2><code>" (car engraver-descr) "</code></h2>\n"
23 "<h3>Description</h3>"
25 "<p>This engraver creates the following elements:\n "
26 (human-listify (map urlfy (caddr engraver-descr)))
29 (map (lambda (x) (document-trans-property x))
30 (car (cdddr engraver-descr)))
40 (string-append "<a href=" x ".html>" x "</a>"))
42 (define (human-listify l)
45 ((null? (cdr l)) (car l))
46 ((null? (cddr l)) (string-append (car l) " and " (cadr l)))
47 (else (string-append (car l) ", " (human-listify (cdr l))))
53 (define (context-doc-string context-desc)
56 (nm (cdr (assoc 'type-name context-desc)))
57 (accepts (cdr (assoc 'accepts context-desc)))
59 (cdr (assoc 'consists context-desc))
60 (cdr (assoc 'end-consists context-desc))
67 (human-listify (map urlfy accepts))
70 (map document-engraver consists)
76 ;; FIXME element ChordNames overwrites context ChordNames.
77 (define (document-context context-desc)
80 (name (cdr (assoc 'type-name context-desc)))
81 (docstr (context-doc-string context-desc))
82 (outname (string-append name ".html"))
83 (out (open-output-file outname))
86 (display (string-append "Writing " outname " ... \n") (current-error-port))
88 (string-append "<title>LilyPond Context " name " </title>"
97 (define (document-paper paper-alist)
100 (ufiles (map (lambda (x) (document-context x )) paper-alist))
101 (files (sort ufiles string<?))
102 (outname (string-append "translation.html"))
103 (out (open-output-file outname))
104 (l (map (lambda (x) (string-append
105 "<li><a href=" x ">" x "</a>\n"))
111 "<title>LilyPond music translation documentation</title>"
112 "<h1>LilyPond music translation documentation</h1>"
114 (apply string-append l)
122 ; (display (document-engraver 'Stem_engraver))
124 (document-paper (My_lily_parser::paper_description))
126 ;(display (human-listify '("a" "b" "c")))