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