X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-markup.scm;h=c348e66e554f7465033b49dada7a0a178b79f174;hb=d1db9b1d6ebb1014429974f22162b44bf9a03533;hp=cffdf2afda238cac9da1d14a85db6ac3efa1c6d5;hpb=70c86a3442dc5d6a1158a3e5bdfc4e683c4be3bf;p=lilypond.git diff --git a/scm/document-markup.scm b/scm/document-markup.scm index cffdf2afda..c348e66e55 100644 --- a/scm/document-markup.scm +++ b/scm/document-markup.scm @@ -1,9 +1,20 @@ -;;;; document-markup.scm -- part of generated backend documentation +;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; source file of the GNU LilyPond music typesetter -;;;; -;;;; (c) 1998--2007 Han-Wen Nienhuys +;;;; Copyright (C) 1998--2011 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen +;;;; +;;;; 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 . (define (doc-markup-function-properties func) @@ -49,8 +60,8 @@ (string-append "\n\n@item @code{\\" c-name "} " signature-str - "\n@findex \\" f-name "\n" - + "\n@funindex \\" c-name "\n" + "\n@cindex \\" c-name "\n" (if (string? doc-str) doc-str "") @@ -62,18 +73,19 @@ "@end itemize\n")))))) (define (markup-functionstring (procedure-name a)) (symbol->string (procedure-name b)))) + (ly:string-cistring (procedure-name a)) (symbol->string (procedure-name b)))) (define (markup-category-doc-node category) (let* ((category-string (symbol->string category)) - (match (string-match "-" category-string)) - (category-name (string-capitalize - (if match - (regexp-substitute #f match 'pre " " 'post) - category-string))) - (markup-functions (hashq-ref markup-functions-by-category - category))) + (category-name (string-capitalize (regexp-substitute/global #f + "-" category-string 'pre " " 'post))) + (markup-functions (hash-fold (lambda (markup-function dummy functions) + (cons markup-function functions)) + '() + (hashq-ref markup-functions-by-category + category)))) (make + #:appendix #t #:name category-name #:desc "" #:text (string-append @@ -83,32 +95,34 @@ (sort markup-functions markup-function + #:appendix #t #:name "Text markup commands" #:desc "" #:text "The following commands can all be used inside @code{\\markup @{ @}}." - #:children (let ((categories (sort (hash-fold (lambda (category function+properties categories) - (cons category categories)) - (list) - markup-functions-by-category) - (lambda (c1 c2) - (stringstring c1) - (symbol->string c2)))))) + #:children (let* (;; when a new category is defined, update `ordered-categories' + (ordered-categories '(font align graphic music instrument-specific-markup other)) + (raw-categories (hash-fold (lambda (category functions categories) + (cons category categories)) + (list) + markup-functions-by-category)) + (categories (append ordered-categories + (filter (lambda (cat) + (not (memq cat ordered-categories))) + raw-categories)))) (map markup-category-doc-node categories)))) -(define (markup-list-doc-node) - (make - #:name "Text markup list commands" - #:desc "" - #:text (string-append - "The following commands can all be used with @code{\\markuplines}.\n" - (markup-list-doc-string)))) +(define (markup-list-doc-string) + (string-append + "@table @asis" + (apply string-append + (map doc-markup-function + (sort (hash-fold (lambda (markup-list-function dummy functions) + (cons markup-list-function functions)) + '() + markup-list-functions) + markup-function