]> git.donarmstrong.com Git - lilypond.git/blob - scm/generate-documentation.scm
release: 1.5.47
[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
35
36 (let* ((doc (string-append
37              (document-music "LilyPond music properties") 
38              (document-paper "LilyPond interpretation contexts")
39              (document-all-engravers "LilyPond engravers")
40              (document-all-engraver-properties "LilyPond context properties")
41              (document-all-grobs "LilyPond backend")
42              (document-all-interfaces "LilyPond interfaces")
43              (document-all-backend-properties "LilyPond backend properties")
44              )
45        )
46        (name "lilypond-internals")
47        (outname (string-append name ".texi"))
48        (out (open-output-file outname)))
49
50   (writing-wip outname)
51   (display 
52    (string-append
53     (texi-file-head
54      
55      ;; we can't use (dir) and top if we're included by lilypond.tely
56      "LilyPond internals" name "(lilypond.info)"
57      '(
58        ("LilyPond music properties" . "properties for Music representation")
59        ("LilyPond interpretation contexts" . "Hierarchy and grouping of Engravers")
60        ("LilyPond engravers" . "Engravers create Grobs")
61        ("LilyPond context properties" . "context properties")       
62        ("LilyPond backend" . "Detailed description of all Grobs")
63        ("LilyPond interfaces" . "Grob Interfaces")
64        ("LilyPond backend properties" . "Grob properties")
65        ("Index" . "index")
66        ))
67
68     
69     
70     doc
71
72     "@node Index
73 @unnumbered Concept index
74
75 @printindex cp
76
77 @unnumbered Variable index
78
79 @printindex vr
80
81 @unnumbered Function index
82
83 @printindex fn
84
85 "
86
87     
88     "\n@bye")
89    out))
90
91 (newline (current-error-port))