]> git.donarmstrong.com Git - lilypond.git/blob - scm/generate-documentation.scm
ac7c071a5b50dfc66649e7158450654a8523cee3
[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                      "engraver-documentation-lib.scm"
21                      "music-documentation-lib.scm"
22                      "backend-documentation-lib.scm"))
23
24 (map load-from-path load-files)
25
26
27 ;;(define no-copies #t)  ; from 490 to 410K, but doesn't look nice yet
28 ;;
29 ;; Also, copies of interfaces use up lots more space, but that's
30 ;; functional because the default property values of the interfaces
31 ;; are described...
32 (define no-copies #f)
33
34 (let* ((doc (string-append
35              (document-music "LilyPond music properties") 
36              (document-paper "LilyPond interpretation contexts")
37              (document-all-engravers "LilyPond engravers")
38              (document-all-engraver-properties "LilyPond context properties")
39              (document-all-grobs "LilyPond backend")
40              (document-all-interfaces "LilyPond interfaces")
41              (document-all-backend-properties "LilyPond backend properties")
42              )
43        )
44        (name "lilypond-internals")
45        (outname (string-append name ".texi"))
46        (out (open-output-file outname)))
47
48   (writing-wip outname)
49   (display 
50    (string-append
51     (texi-file-head
52      
53      ;; we can't use (dir) and top if we're included by lilypond.tely
54      "LilyPond internals" name "(lilypond.info)"
55      '(
56        ("LilyPond music properties" . "properties for Music representation")
57        ("LilyPond interpretation contexts" . "Hierarchy and grouping of Engravers")
58        ("LilyPond engravers" . "Engravers create Grobs")
59        ("LilyPond context properties" . "context properties")       
60        ("LilyPond backend" . "Detailed description of all Grobs")
61        ("LilyPond interfaces" . "Grob Interfaces")
62        ("LilyPond backend properties" . "Grob properties")
63        ("Index" . "index")
64        ))
65
66     
67     
68     doc
69
70     "@node Index
71 @unnumbered Concept index
72
73 @printindex cp
74
75 @unnumbered Variable index
76
77 @printindex vr
78
79 @unnumbered Function index
80
81 @printindex fn
82
83 "
84
85     
86     "\n@bye")
87    out))
88
89 (newline (current-error-port))