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