]> git.donarmstrong.com Git - lilypond.git/blob - scm/document-markup.scm
*** empty log message ***
[lilypond.git] / scm / document-markup.scm
1
2 (define (doc-markup-function func)
3   (let*
4       (
5        (doc-str  (procedure-documentation func) )
6        (f-name (symbol->string (procedure-name  func)))
7        (c-name (regexp-substitute/global #f "-markup$" f-name  'pre "" 'post))
8        (sig (object-property func 'markup-signature))
9        (arg-names
10         (map symbol->string 
11              (cddr (cadr (procedure-source func)))))
12        
13        (sig-type-names (map type-name sig))
14        (signature (zip arg-names  sig-type-names))
15        (signature-str
16         (string-join
17          (map (lambda (x) (string-append
18                            "@var{" (car x) "} ("  (cadr x) ")" ))
19               (zip arg-names  sig-type-names))
20          " " )))
21     
22     
23        
24   (string-append
25    "\n\n@item @code{\\" c-name "} " signature-str
26    
27    "\n@findex " f-name "\n"
28    "\n@cindex " c-name "\n"
29    
30    (if (string? doc-str)
31        doc-str
32        "")
33   )))
34
35 (define (markup-function<? a b)
36   (string<? (symbol->string (procedure-name a)) (symbol->string (procedure-name b))))
37
38 (define (markup-doc-string)
39   (string-append
40          
41          "@table @asis"
42          (apply string-append
43          
44                 (map doc-markup-function
45                      (sort markup-function-list markup-function<?) ) )
46          "\n@end table"
47
48          ))
49
50 (define (markup-doc-node)
51   (make <texi-node>
52     #:name "Markup functions"
53     #:desc "Definitions of the markup functions."
54     #:text (markup-doc-string)))