Spaces:
Sleeping
Sleeping
;;;; This file is part of LilyPond, the GNU music typesetter. | |
;;;; | |
;;;; Copyright (C) 2000--2020 Han-Wen Nienhuys <[email protected]> | |
;;;; Jan Nieuwenhuizen <[email protected]> | |
;;;; | |
;;;; LilyPond is free software: you can redistribute it and/or modify | |
;;;; it under the terms of the GNU General Public License as published by | |
;;;; the Free Software Foundation, either version 3 of the License, or | |
;;;; (at your option) any later version. | |
;;;; | |
;;;; LilyPond is distributed in the hope that it will be useful, | |
;;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
;;;; GNU General Public License for more details. | |
;;;; | |
;;;; You should have received a copy of the GNU General Public License | |
;;;; along with LilyPond. If not, see <http://www.gnu.org/licenses/>. | |
;;; File entry point for generated documentation | |
;;; Running LilyPond on this file generates the documentation | |
;;;;;;;;;;;;;;;; | |
;;;;;;;;;;;;;;;; TODO : make modules of these! | |
;;;;;;;;;;;;;;;; | |
;; todo: naming: grob vs. layout property | |
(use-modules (scm accreg)) | |
(for-each ly:load '("documentation-lib.scm" | |
"lily-sort.scm" | |
"document-functions.scm" | |
"document-translation.scm" | |
"document-music.scm" | |
"document-type-predicates.scm" | |
"document-identifiers.scm" | |
"document-context-mods.scm" | |
"document-backend.scm" | |
"document-markup.scm")) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(display | |
(slot-ref (all-scheme-functions-doc) 'text) | |
(open-output-file "scheme-functions.tely")) | |
;;(display | |
;; (markup-doc-string) | |
;; (open-output-file "markup-commands.tely")) | |
(display | |
;; ugly hack to remove the @node... @appendixsec... portion | |
(substring | |
(call-with-output-string | |
(lambda (port) | |
(dump-node (markup-doc-node) port 2))) | |
;; magic number to remove the initial part. 63 comes from: | |
;; "\nnode Text markup commands\n@appendixsec Text markup commands\n\n\n\n" | |
;; which is generated by (dump-node...) in documentation-lib.scm | |
63 | |
) | |
(open-output-file "markup-commands.tely")) | |
(display | |
(markup-list-doc-string) | |
(open-output-file "markup-list-commands.tely")) | |
(display | |
type-predicates-doc-string | |
(open-output-file "type-predicates.tely")) | |
(display | |
(identifiers-doc-string) | |
(open-output-file "identifiers.tely")) | |
(display | |
context-mods-doc-string | |
(open-output-file "context-mod-identifiers.tely")) | |
(display | |
(backend-properties-doc-string all-user-grob-properties) | |
(open-output-file "layout-properties.tely")) | |
(display | |
(translation-properties-doc-string all-user-translation-properties) | |
(open-output-file "context-properties.tely")) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
(define file-name "internals") | |
(define outname (string-append file-name ".texi")) | |
(define out-port (open-output-file outname)) | |
;; Don't output Latin1. | |
(cond-expand | |
(guile-2 (set-port-encoding! out-port "UTF-8")) | |
(else)) | |
(writing-wip outname) | |
(display | |
(string-append | |
(texi-file-head "LilyPond Internals Reference" file-name | |
"(lilypond-internals.info)") | |
" | |
@include macros.itexi | |
@iftex | |
@afourpaper | |
@end iftex | |
@finalout | |
@titlepage | |
@title LilyPond | |
@subtitle The music typesetter | |
@titlefont{Internals Reference} | |
@author The LilyPond development team | |
@c `Internals Reference' was born 2000-10-21 with this commit: | |
@c patch::: 1.3.96.jcn9 | |
@c author: Jan Nieuwenhuizen | |
@c commit: 8ecd09ad7514d57630fb611d38c161f3c3c708db | |
@c file: scm/generate-documentation.scm | |
Copyright @copyright{} 2000--2020 by the authors | |
@vskip 20pt | |
For LilyPond version @version{} | |
@end titlepage | |
@contents | |
@ifnottex") | |
out-port) | |
(define top-node | |
(make <texi-node> | |
#:name "GNU LilyPond -- Internals Reference" | |
#:text | |
(string-append "@end ifnottex | |
@ifhtml | |
@ifclear bigpage | |
This document is also available as a | |
@uref{../internals.pdf,PDF} and as | |
@uref{../internals-big-page.html,one big page}. | |
@end ifclear | |
@ifset bigpage | |
This document is also available as a | |
@uref{internals.pdf,PDF} and as a | |
@uref{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) | |
(make <texi-node> | |
#:appendix #t | |
#:name "Indices" | |
#:text " | |
@appendixsec Concept index | |
@printindex cp | |
@appendixsec Function index | |
@printindex fn | |
\n@bye")))) | |
(dump-node top-node out-port 0) | |
(newline (current-error-port)) | |