]> git.donarmstrong.com Git - lilypond.git/blob - scm/generate-documentation.scm
''
[lilypond.git] / scm / generate-documentation.scm
1 ;;; generate-documentation.scm -- Generate documentation
2 ;;;
3 ;;; source file of the GNU LilyPond music typesetter
4 ;;; 
5 ;;; (c) 2000--2001 Han-Wen Nienhuys <hanwen@cs.uu.nl>
6 ;;; Jan Nieuwenhuizen <janneke@gnu.org>
7
8 ;;; File entry point for generated documentation
9
10 ;;; Running LilyPond on this file generates the documentation
11
12
13
14
15 ;;;;;;;;;;;;;;;;
16 ;;;;;;;;;;;;;;;; TODO : make modules of these!
17 ;;;;;;;;;;;;;;;;
18
19 (define load-files '("documentation-lib.scm"
20                      "function-documentation.scm"
21                      "engraver-documentation-lib.scm"
22                      "music-documentation-lib.scm"
23                      "backend-documentation-lib.scm"
24                      ))
25
26 (map load-from-path load-files)
27
28
29 ;;(define no-copies #t)  ; from 490 to 410K, but doesn't look nice yet
30 ;;
31 ;; Also, copies of interfaces use up lots more space, but that's
32 ;; functional because the default property values of the interfaces
33 ;; are described...
34 (define no-copies #f)
35
36
37
38 (let* ((doc (string-append
39              (document-music "music properties") 
40              (document-paper "interpretation contexts")
41              (document-all-engravers "engravers")
42              (document-all-engraver-properties "context properties")
43              (document-all-grobs "backend")
44              (document-all-interfaces "interfaces")
45
46              (node "backend properties")
47              (texi-section 1 "backend properties" #f)
48
49              (document-all-backend-properties "backend properties")
50
51              (node "function documentation")
52              (texi-section 1 "function documentation" #f)
53
54              (document-all-scheme-functions)
55              
56              )
57        )
58        (name "lilypond-internals")
59        (outname (string-append name ".texi"))
60        (out (open-output-file outname)))
61
62   (writing-wip outname)
63   (display 
64    (string-append
65     (texi-file-head
66      
67      ;; we can't use (dir) and top if we're included by lilypond.tely
68      "LilyPond internals" name "(lilypond.info)"
69      '(
70        ("music properties" . "properties for Music representation")
71        ("interpretation contexts" . "Hierarchy and grouping of Engravers")
72        ("engravers" . "Engravers create Grobs")
73        ("context properties" . "context properties")       
74        ("backend" . "Detailed description of all Grobs")
75        ("interfaces" . "Grob Interfaces")
76        ("backend properties" . "Grob properties")
77        ("function documentation" . "Grob properties")       
78        ("Index" . "index")
79        ))
80
81     
82     
83     doc
84
85     "@node Index
86 @unnumbered Concept index
87
88 @printindex cp
89
90 @unnumbered Variable index
91
92 @printindex vr
93
94 @unnumbered Function index
95
96 @printindex fn
97
98 "
99
100     
101     "\n@bye")
102    out))
103
104 (newline (current-error-port))