2 ;;; generate-documentation.scm -- Generate documentation
4 ;;; source file of the GNU LilyPond music typesetter
6 ;;; (c) 2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 ;;; Jan Nieuwenhuizen <janneke@gnu.org>
9 ;;; File entry point for generated documentation
11 ;;; Running LilyPond on this file generates the documentation
15 ;; We use ly-gulp because these files live in
17 ;; PATH=$LILYPONDPREFIX/scm:<datadir>/scm
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"))
23 ;;(define no-copies #t) ; from 490 to 410K, but doesn't look nice yet
25 ;; Also, copies of interfaces use up lots more space, but that's
26 ;; functional because the default property values of the interfaces
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")
39 (name "lilypond-internals")
40 (outname (string-append name ".texi"))
41 (out (open-output-file outname)))
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")
64 @unnumbered Concept index
68 @unnumbered Variable index
72 @unnumbered Function index
82 (newline (current-error-port))