-;;; generate-documentation.scm -- Generate documentation
-;;;
-;;; source file of the GNU LilyPond music typesetter
-;;;
-;;; (c) 2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-;;; Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; generate-documentation.scm -- Generate documentation
+;;;;
+;;;; source file of the GNU LilyPond music typesetter
+;;;;
+;;;; (c) 2000--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Jan Nieuwenhuizen <janneke@gnu.org>
;;; File entry point for generated documentation
-
;;; Running LilyPond on this file generates the documentation
-(debug-enable 'debug)
-(debug-enable 'backtrace)
-(read-enable 'positions)
+;;(set-debug-cell-accesses! 5000)
;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;; TODO : make modules of these!
;;;;;;;;;;;;;;;;
-; todo: naming: grob vs. layout property
-
-(define load-files '("documentation-lib.scm"
- "document-functions.scm"
- "document-translation.scm"
- "document-music.scm"
- "document-backend.scm"
- "document-markup.scm"
- ))
-(map ly:load load-files)
+;; todo: naming: grob vs. layout property
+(map ly:load '("documentation-lib.scm"
+ "lily-sort.scm"
+ "document-functions.scm"
+ "document-translation.scm"
+ "document-music.scm"
+ "document-identifiers.scm"
+ "document-backend.scm"
+ "document-markup.scm"))
-;;(define no-copies #t) ; from 490 to 410K, but doesn't look nice yet
-;;
-;; Also, copies of interfaces use up lots more space, but that's
-;; functional because the default property values of the interfaces
-;; are described...
-(define no-copies #f)
-
-(define file-name "lilypond-internals")
-(define outname (string-append file-name ".texi"))
-(define out-port (open-output-file outname))
-
-(writing-wip outname)
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(display
- (string-append
- "@c -*-texinfo-*-"
- (texi-file-head "LilyPond program-reference" outname "(lilypond-internals.info)")
- "
-
-@ifhtml
-@macro usermanref{NAME}
-@uref{../lilypond/\\NAME\\.html,\\NAME\\}
-@cindex \\NAME\\
-@end macro
-@end ifhtml
-
-@ifinfo
-@macro usermanref{NAME}
-@inforef{\\NAME\\,,lilypond}
-@cindex \\NAME\\
-@end macro
-@end ifinfo
+ (slot-ref (all-scheme-functions-doc) 'text)
+ (open-output-file "scheme-functions.tely"))
-@ifhtml
-@macro glossaryref{NAME}
-@uref{../music-glossary/\\NAME\\.html,\\NAME\\}
-@cindex \\NAME\\
-@end macro
-@end ifhtml
+;;(display
+;; (markup-doc-string)
+;; (open-output-file "markup-commands.tely"))
-@ifinfo
-@macro glossaryref{NAME}
-@inforef{\\NAME\\,,music-glossary}
-@cindex \\NAME\\
-@end macro
-@end ifinfo
+(call-with-output-file "markup-commands.tely"
+ (lambda (port)
+ (dump-node (markup-doc-node) port 2)))
+(call-with-output-file "markup-list-commands.tely"
+ (lambda (port)
+ (dump-node (markup-list-doc-node) port 2)))
-@macro internalsref{NAME}
-@ref{\\NAME\\}
-@end macro
+(display
+ (identifiers-doc-string)
+ (open-output-file "identifiers.tely"))
-@ifhtml
-@macro inputfileref{DIR,NAME}
-@uref{../../../../\\DIR\\/out-www/collated-files.html#\\NAME\\,@file{\\DIR\\/\\NAME\\}}@c
-@end macro
+(display
+ (backend-properties-doc-string all-user-grob-properties)
+ (open-output-file "layout-properties.tely"))
-@end ifhtml
+(display
+ (translation-properties-doc-string all-user-translation-properties)
+ (open-output-file "context-properties.tely"))
-@ifinfo
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-@macro inputfileref{DIR,NAME}
-@file{\\DIR\\/\\NAME\\}
-@end macro
+(define file-name "internals")
+(define outname (string-append file-name ".texi"))
-@end ifinfo
+(define out-port (open-output-file outname))
-@iftex
-@macro inputfileref{DIR,NAME}@c
-@file{\\DIR\\/\\NAME\\}@c
-@end macro
-@end iftex
+(writing-wip outname)
+(display
+ (string-append
+ (texi-file-head "LilyPond Internals Reference" file-name
+ "(lilypond-internals.info)")
+ "
+@include macros.itexi
@ignore
@omftitle LilyPond internals
@omfcategory Applications|Publishing
@end ignore
+@iftex
+@afourpaper
+@end iftex
+
+@finalout
+
+@titlepage
+@title LilyPond
+@subtitle The music typesetter
+@titlefont{Internals Reference}
+@author The LilyPond development team
+
+Copyright @copyright{} 1999--2009 by the authors
+
+@vskip 20pt
-") out-port)
+For LilyPond version @version{}
+@end titlepage
+
+@contents
+
+@ifnottex")
+ out-port)
(define top-node
(make <texi-node>
- #:name "Top"
+ #:name "GNU LilyPond -- Internals Reference"
+ #:text
+ (string-append "@end ifnottex
+
+@ifhtml
+@ifclear bigpage
+This document is also available as a
+@uref{source/Documentation/internals.pdf,PDF} and as
+@uref{source/Documentation/internals-big-page.html,one big page}.
+@end ifclear
+@ifset bigpage
+This document is also available as a
+@uref{source/Documentation/internals.pdf,PDF} and as a
+@uref{source/Documentation/internals/index.html,HTML indexed multiple pages}.
+@end ifset
+@end ifhtml
+
+This is the Internals Reference (IR) for version "
+ (lilypond-version)
+ " of LilyPond, the GNU music typesetter.")
+
#:children
(list
(music-doc-node)
(translation-doc-node)
(backend-doc-node)
(all-scheme-functions-doc)
- (markup-doc-node)
(make <texi-node>
- #:name "Index"
+ #:appendix #t
+ #:name "Indices"
#:text "
-@unnumbered Concept index
+@appendixsec Concept index
@printindex cp
-@unnumbered Variable index
-
-@printindex vr
-
-@unnumbered Function index
+@appendixsec Function index
@printindex fn
-\n@bye"
-
-
- )
- )))
-
+\n@bye"))))
(dump-node top-node out-port 0)
(newline (current-error-port))
-
-
-(dump-node (all-scheme-functions-doc)
- (open-output-file "scheme-functions.tely")
- 2)
-
-(dump-node
- (make <texi-node>
- #:name "Layout property overview"
- #:desc "All user serviceable layout properties"
- #:text (backend-properties-doc-string all-user-grob-properties))
-
- (open-output-file "layout-properties.tely")
- 2)
-
-(dump-node
- (make <texi-node>
- #:name "Context property overview"
- #:desc "All user serviceable context properties"
- #:text (translation-properties-doc-string all-user-translation-properties))
-
- (open-output-file "context-properties.tely")
- 2)
-
-