]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/document-markup.scm
apply Julian's patch to fix install-info warnings
[lilypond.git] / scm / document-markup.scm
index cffdf2afda238cac9da1d14a85db6ac3efa1c6d5..c348e66e554f7465033b49dada7a0a178b79f174 100644 (file)
@@ -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 <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;;
+;;;; 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/>.
 
 
 (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
          "")
                           "@end itemize\n"))))))
 
 (define (markup-function<? a b)
-  (string<? (symbol->string (procedure-name a)) (symbol->string (procedure-name b))))
+  (ly:string-ci<? (symbol->string (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 <texi-node>
+      #:appendix #t
       #:name category-name
       #:desc ""
       #:text (string-append
                           (sort markup-functions markup-function<?)))
               "\n@end table"))))
 
-(define (markup-list-doc-string)
-  (string-append
-   "@table @asis"
-   (apply string-append
-          (map doc-markup-function
-               (sort markup-list-function-list markup-function<?)))
-   "\n@end table"))
-
 (define (markup-doc-node)
   (make <texi-node>
+    #: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)
-                                         (string<? (symbol->string 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 <texi-node>
-    #: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<?)))
+   "\n@end table"))
+
+