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