]> git.donarmstrong.com Git - lilypond.git/blob - scm/generate-documentation.scm
(urg, fukking emacs)
[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 (debug-enable 'backtrace)
14
15
16
17 ;;;;;;;;;;;;;;;;
18 ;;;;;;;;;;;;;;;; TODO : make modules of these!
19 ;;;;;;;;;;;;;;;;
20
21 (define load-files '("documentation-lib.scm"
22                      "function-documentation.scm"
23                      "engraver-documentation-lib.scm"
24                      "music-documentation-lib.scm"
25                      "backend-documentation-lib.scm"
26                      ))
27
28 (map load-from-path load-files)
29
30
31 ;;(define no-copies #t)  ; from 490 to 410K, but doesn't look nice yet
32 ;;
33 ;; Also, copies of interfaces use up lots more space, but that's
34 ;; functional because the default property values of the interfaces
35 ;; are described...
36 (define no-copies #f)
37
38 (let* ((doc (string-append
39              (document-music "Music properties") 
40              (document-paper "Contexts")
41              (document-all-engravers "Engravers")
42              (document-all-engraver-properties "Context properties")
43              (document-all-grobs "Grob overview")
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        ("Contexts" . "Hierarchy and grouping of Engravers")
72        ("Engravers" . "Engravers create Grobs")
73        ("Context properties" . "context properties")       
74        ("Grob overview" . "Detailed description of all Grobs")
75        ("Interfaces" . "Grob Interfaces")
76        ("Backend properties" . "Grob properties")
77        ("Function documentation" . "All embedded functions")
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))