k-l-lambda's picture
added node-addon-lilypond
f65fe85
;;;; 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))