]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/document-music.scm
Change Info docs setup and clean up Documentation/user/GNUmakefile
[lilypond.git] / scm / document-music.scm
index 6070cf769257a616d98313fceca5ce0ac0f0d6e3..4c12b6b1e9a9e39621f688760bec1b315f55ec5a 100644 (file)
@@ -2,13 +2,13 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2006 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 (define (music-props-doc)
   (make <texi-node>
     #:name "Music properties"
-    #:desc "All music properties, including descriptions"
+    #:desc "All music properties, including descriptions."
     #:text
     (let* ((ps (sort (map symbol->string all-music-properties) string<?))
           (descs (map (lambda (prop)
       texi)))
 
 (define music-types->names (make-vector 61 '()))
-(map (lambda (entry)
-       (let* ((types (cdr (assoc 'types (cdr entry)))))
-        (map (lambda (type)
-               (hashq-set! music-types->names type
-                           (cons (car entry)
-                                 (hashq-ref music-types->names type '()))))
-             types)))
-     music-descriptions)
+(filter-map (lambda (entry)
+             (let* ((class (ly:camel-case->lisp-identifier (car entry)))
+                    (classes (ly:make-event-class class)))
+               (if classes
+                   (map (lambda (cl)
+                          (hashq-set! music-types->names cl
+                                      (cons (car entry)
+                                            (hashq-ref music-types->names cl '()))))
+                        classes)
+                   #f)))
+           
+           music-descriptions)
 
 (define (strip-description x)
   (cons (symbol->string (car x))
     (string-append
      "\nMusic event type @code{"
      (symbol->string (car entry))
-     "} is in Music objects of type "
+     "} is in music objects of type "
      (human-listify
       (sort
        (map (lambda (x) (ref-ify (symbol->string x)))
            (cdr entry)) string<?))
+     "."
 
      "\n\nAccepted by: "
      (human-listify
@@ -51,6 +56,7 @@
                (map ly:translator-name
                     (filter
                      (lambda (x) (engraver-accepts-music-type? (car entry) x)) all-engravers-list)))))
+     "."
      "\n\n")))
 
 (define (music-types-doc)
 (define (music-doc-str obj)
   (let* ((namesym  (car obj))
         (props (cdr obj))
-        (types (cdr (assoc  'types props))))
-    
+        (class (ly:camel-case->lisp-identifier namesym))
+        (classes (ly:make-event-class class))
+        (event-texi (if classes
+                        (string-append
+                         "\n\nEvent classes:\n"
+                         (human-listify (map ref-ify (map symbol->string classes)))
+                         "."
+
+                         "\n\nAccepted by: "
+                         (human-listify
+                          (map ref-ify
+                               (map symbol->string (map ly:translator-name
+                                                        (filter
+                                                         (lambda (x) (engraver-accepts-music-types? classes x)) all-engravers-list)))))
+                         ".")
+                        "")))
+
     (string-append
      (object-property namesym 'music-description)
-     "\n\nMusic types:\n"
-     (human-listify (map ref-ify (map symbol->string types)))
-     "\n\n"
-     "\n\nAccepted by: "
-     (human-listify
-      (map ref-ify
-          (map symbol->string (map ly:translator-name
-                                   (filter
-                                    (lambda (x) (engraver-accepts-music-types? types x)) all-engravers-list)))))
-     "\n\nProperties: \n"
+     event-texi
+     "\n\nProperties:\n"
      (description-list->texi
       (map
-       (lambda (x) (property->texi 'music  x props))
+       (lambda (x) (property->texi 'music x props))
        (map car props))))))
 
 (define (music-object-doc obj)
 (define (music-doc-node)
   (make <texi-node>
     #:name "Music definitions"
-    #:desc "Definition of the Input data structures"
+    #:desc "Definition of the input data structures."
     #:children
     (list
      (music-expressions-doc)