Add 128th flags
[lilypond.git] / scm / documentation-generate.scm
blob56f86e00d6c459cd5b138d6e7cde0a966032a490
1 ;;;; generate-documentation.scm -- Generate documentation
2 ;;;;
3 ;;;; source file of the GNU LilyPond music typesetter
4 ;;;; 
5 ;;;; (c) 2000--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
6 ;;;; Jan Nieuwenhuizen <janneke@gnu.org>
8 ;;; File entry point for generated documentation
9 ;;; Running LilyPond on this file generates the documentation
11 ;;(set-debug-cell-accesses! 5000)
13 ;;;;;;;;;;;;;;;;
14 ;;;;;;;;;;;;;;;; TODO : make modules of these!
15 ;;;;;;;;;;;;;;;;
17 ;; todo: naming: grob vs. layout property
19 (map ly:load '("documentation-lib.scm"
20                "document-functions.scm"
21                "document-translation.scm"
22                "document-music.scm"
23                "document-identifiers.scm"
24                "document-backend.scm"
25                "document-markup.scm"))
27 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29 (display
30  (slot-ref (all-scheme-functions-doc) 'text)
31  (open-output-file "scheme-functions.tely"))
33 ;;(display 
34 ;; (markup-doc-string)
35 ;; (open-output-file "markup-commands.tely"))
37 (call-with-output-file "markup-commands.tely"
38   (lambda (port)
39     (dump-node (markup-doc-node) port 2)))
41 (call-with-output-file "markup-list-commands.tely"
42   (lambda (port)
43     (dump-node (markup-list-doc-node) port 2)))
45 (display 
46  (identifiers-doc-string)
47  (open-output-file "identifiers.tely"))
50 (display
51  (backend-properties-doc-string all-user-grob-properties)
52  (open-output-file "layout-properties.tely"))
54 (display
55  (translation-properties-doc-string all-user-translation-properties)
56  (open-output-file "context-properties.tely"))
58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
60 (define file-name "lilypond-internals")
61 (define outname (string-append file-name ".texi"))
63 (define out-port (open-output-file outname))
65 (writing-wip outname)
67 (display
68  (string-append
69   (texi-file-head "LilyPond program-reference" file-name
70                   "(lilypond/lilypond-internals.info)")
71   "
73 @include macros.itexi
75 @ignore
76 @omftitle LilyPond internals
77 @omfcreator Han-Wen Nienhuys and Jan Nieuwenhuizen
78 @omfdescription Programmer's reference of the LilyPond music engraving system
79 @omftype user's guide
80 @omflanguage English
81 @omfcategory Applications|Publishing
82 @end ignore
84 @iftex
85 @afourpaper
86 @c don't replace quotes with directed quotes
87 @tex
88 \\gdef\\SETtxicodequoteundirected{Foo}
89 \\gdef\\SETtxicodequotebacktick{Bla}
90 @end tex
91 @end iftex
93 @finalout
95 @titlepage
96 @title LilyPond
97 @subtitle The music typesetter
98 @titlefont{Internals Reference}
99 @author The LilyPond development team
101 Copyright @copyright{} 1999--2008 by the authors
103 @vskip 20pt
105 For LilyPond version @version{}
106 @end titlepage
108 @contents
110 @ifnottex")
111  out-port)
113 (define top-node
114   (make <texi-node>
115     #:name "GNU LilyPond -- Internals Reference"
116     #:text
117     (string-append  "@end ifnottex
119 @ifhtml
120 @ifclear bigpage
121 This document is also available as a
122 @uref{source/Documentation/user/lilypond-internals.pdf,PDF} and as
123 @uref{source/Documentation/user/lilypond-internals-big-page.html,one big page}.
124 @end ifclear
125 @ifset bigpage
126 This document is also available as a
127 @uref{source/Documentation/user/lilypond-internals.pdf,PDF} and as a
128 @uref{source/Documentation/user/lilypond-internals/index.html,HTML indexed multiple pages}.
129 @end ifset
130 @end ifhtml
132 This is the Internals Reference (IR) for version "
133                     (lilypond-version)
134                     " of LilyPond, the GNU music typesetter.")
136     #:children
137     (list
138      (music-doc-node)
139      (translation-doc-node)
140      (backend-doc-node)
141      (all-scheme-functions-doc)
142      (make <texi-node>
143        #:appendix #t
144        #:name "Indices"
145        #:text "
146 @appendixsec Concept index
148 @printindex cp
150 @appendixsec Function index
152 @printindex fn
154 \n@bye"))))
156 (dump-node top-node out-port 0)
157 (newline (current-error-port))