]> git.donarmstrong.com Git - lilypond.git/blob - scm/generate-documentation.scm
* Documentation/user/music-glossary.tely: add @omf tags
[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--2002 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 (debug-enable 'debug)
13 (debug-enable 'backtrace)
14 (read-enable 'positions)
15
16 ;;;;;;;;;;;;;;;;
17 ;;;;;;;;;;;;;;;; TODO : make modules of these!
18 ;;;;;;;;;;;;;;;;
19
20 (define load-files '("documentation-lib.scm"
21                      "function-documentation.scm"
22                      "engraver-documentation-lib.scm"
23                      "music-documentation-lib.scm"
24                      "backend-documentation-lib.scm"
25                      ))
26 (map ly:load load-files)
27
28
29 ;;(define no-copies #t)  ; from 490 to 410K, but doesn't look nice yet
30 ;;
31 ;; Also, copies of interfaces use up lots more space, but that's
32 ;; functional because the default property values of the interfaces
33 ;; are described...
34 (define no-copies #f)
35
36 (define file-name "lilypond-internals")
37 (define outname (string-append file-name ".texi"))
38 (define out-port (open-output-file outname))
39
40 (writing-wip outname)
41
42 (display
43  (string-append
44   "@c -*-texinfo-*-"
45   (texi-file-head "LilyPond internals" outname "(lilypond.info)")
46   "
47
48 @ifhtml
49 @macro usermanref{NAME}
50 @uref{../lilypond/\\NAME\\.html,\\NAME\\}
51 @cindex \\NAME\\
52 @end macro
53 @end ifhtml
54
55 @ifinfo
56 @macro usermanref{NAME}
57 @inforef{\\NAME\\,,lilypond}
58 @cindex \\NAME\\
59 @end macro
60 @end ifinfo
61
62 @ifhtml
63 @macro glossaryref{NAME}
64 @uref{../music-glossary/\\NAME\\.html,\\NAME\\}
65 @cindex \\NAME\\
66 @end macro
67 @end ifhtml
68
69 @ifinfo
70 @macro glossaryref{NAME}
71 @inforef{\\NAME\\,,music-glossary}
72 @cindex \\NAME\\
73 @end macro
74 @end ifinfo
75
76
77 @ignore
78 @omftitle LilyPond internals
79 @omfcreator Han-Wen Nienhuys and Jan Nieuwenhuizen
80 @omfdescription Programmer's reference of the LilyPond music engraving system
81 @omftype user manual
82 @omfcategory Music 
83 @end ignore
84
85
86 ") out-port)
87
88 (define top-node
89   (make <texi-node>
90     #:name "Top"
91     #:children
92     (list
93      (music-doc-node)
94      (translation-doc-node)
95      (backend-doc-node)
96      (all-scheme-functions-doc)
97      (make <texi-node>
98        #:name "Index"
99        #:text "
100 @unnumbered Concept index
101
102 @printindex cp
103
104 @unnumbered Variable index
105
106 @printindex vr
107
108 @unnumbered Function index
109
110 @printindex fn
111
112 \n@bye"
113
114        
115      )
116     )))
117
118
119 (dump-node top-node out-port 0)
120 (newline (current-error-port))