]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/document-translation.scm
*** empty log message ***
[lilypond.git] / scm / document-translation.scm
index 25b08fc25f455f4cd6770ee5496b0d81025d594e..222ee0985164ac90413bd6c08454c2dfc39a469c 100644 (file)
@@ -1,10 +1,9 @@
-
-;;; engraver-doumentation-lib.scm -- Functions for engraver documentation
-;;;
-;;; source file of the GNU LilyPond music typesetter
-;;; 
-;;; (c)  2000--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-;;; Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; document-translation.scm -- Functions for engraver documentation
+;;;;
+;;;; source file of the GNU LilyPond music typesetter
+;;;; 
+;;;; (c)  2000--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 
 
 (define (engraver-makes-grob? name-symbol grav)
@@ -30,7 +29,7 @@
         (propsw (cdr (assoc 'properties-written (ly:translator-description engraver))))
         (accepted  (cdr (assoc 'events-accepted (ly:translator-description engraver)))) 
         (name-sym  (ly:translator-name engraver))
-        (name (symbol->string name-sym))
+        (name-str (symbol->string name-sym))
         (desc (cdr (assoc 'description (ly:translator-description engraver))))
         (grobs (engraver-grobs engraver))
         )
@@ -54,7 +53,7 @@
         (string-append
          "Properties (read)"
          (description-list->texi
-          (map (lambda (x) (document-property x 'translation #f)) propsr)))
+          (map (lambda (x) (property->texi 'translation  x '())) propsr)))
         "")
      
      (if (null? propsw)
         (string-append
         "Properties (write)" 
          (description-list->texi
-          (map (lambda (x) (document-property x 'translation #f)) propsw))))
+          (map (lambda (x) (property->texi 'translation  x '())) propsw))))
      (if  (null? grobs)
          ""
          (string-append
-          "This engraver creates the following grobs: \n "
-          (human-listify (map ref-ify (uniq-list (sort  grobs string<? ))))
+          "This engraver creates the following layout objects: \n "
+          (human-listify (map ref-ify (uniq-list (sort grobs string<? ))))
           ".")
          )
 
      "\n\n"
 
      (if in-which-contexts
-        (let* ((paper-alist (My_lily_parser::paper_description))
-               (context-description-alist (map cdr paper-alist))
-               (contexts
-                (apply append
-                       (map (lambda (x)
-                              (let ((context (cdr (assoc 'context-name x)))
-                                    (consists (append
-                                               (list (cdr (assoc 'group-type x)))
-                                               (cdr (assoc 'consists x))
-                                               )))
-
-                                (if (member name consists)
-                                    (list context)
-                                    '())))
-                            context-description-alist))))
+        (let*
+            ((paper-alist (ly:output-description $defaultpaper))
+             (context-description-alist (map cdr paper-alist))
+             (contexts
+              (apply append
+                     (map
+                      (lambda (x)
+                        (let*
+                            ((context (cdr (assoc 'context-name x)))
+                             (group (assq-ref x 'group-type))
+                             (consists (append
+                                        (if group
+                                            (list group)
+                                            '())
+                                        (cdr (assoc 'consists x))
+                                        ))
+
+
+                             )
+                          (if (member name-sym consists)
+                              (list context)
+                              '())))
+                      context-description-alist))))
           (string-append
-           name " is part of contexts: "
-           (human-listify (map ref-ify (map symbol->string contexts)))))
+           "@code{" name-str "} is part of contexts: "
+           (human-listify (map ref-ify
+                               (sort
+                               (map symbol->string contexts) string<?)))))
         ""
         ))))
 
     ))
 
 ;; Second level, part of Context description
-
 (define name->engraver-table (make-vector 61 '()))
 (map
  (lambda (x)
        (eg (find-engraver-by-name name ))
        )
 
-    (cons (symbol->string name )
+    (cons (string-append "@code{" (ref-ify (symbol->string name)) "}")
          (engraver-doc-string eg #f)
      )
     ))
                 (cdr desc-handle) "(not documented)"))
        
        (accepts (cdr (assoc 'accepts context-desc)))
+       (group (assq-ref context-desc 'group-type))
+
        (consists (append
-                 (list (cdr (assoc 'group-type context-desc)))
+                 (if group (list group)
+                     '())
                  (cdr (assoc 'consists context-desc))
                  ))
        (props (cdr (assoc 'property-ops context-desc)))
       #:text
       (string-append 
        desc
-       "\n\n This context is also known as: \n\n"
-       (human-listify aliases)
-       "\n\nThis context creates the following grobs: \n\n"
+       (if (pair? aliases)
+          (string-append "\n\n This context is also known as: \n\n"
+                         (human-listify aliases))
+          "")
+       "\n\nThis context creates the following layout objects: \n\n"
        (human-listify (uniq-list (sort grob-refs string<? )))
        "."
        (if (pair? props)
        
        "\n\nThis context is built from the following engravers: "
        (description-list->texi
-             (map document-engraver-by-name consists))
+       (map document-engraver-by-name consists))
        ))))
 
-(define (engraver-grobs  grav)
+(define (engraver-grobs grav)
   (let* ((eg (if (symbol? grav)
                 (find-engraver-by-name grav)
                 grav)))
-
     (if (eq? eg #f)
        '()
        (map symbol->string (cdr (assoc 'grobs-created (ly:translator-description eg)))))
   ))
 
 (define (context-grobs context-desc)
-  (let* ((consists (append
-                   (list (cdr (assoc 'group-type context-desc)))
+  (let* (
+        (group (assq-ref context-desc 'group-type))
+        (consists (append
+                   (if group
+                       (list group)
+                       '())
                    (cdr (assoc 'consists context-desc))
                    ))
         (grobs  (apply append
     grobs
     ))
 
-(define (symbol<? l r)
-  (string<? (symbol->string l) (symbol->string r)))
+
 
 (define (all-contexts-doc)
   (let* (
         (paper-alist
-         (sort (My_lily_parser::paper_description)
+         (sort (ly:output-description $defaultpaper)
                (lambda (x y) (symbol<? (car x) (car y)))))
         (names (sort (map symbol->string (map car paper-alist)) string<?))
         (contexts (map cdr paper-alist))
   (make <texi-node>
     #:name "Engravers"
     #:desc "All separate engravers"
+    #:text "See @usermanref{Modifying context plug-ins}."
     #:children
     (map engraver-doc all-engravers-list)))
 
-(define (all-translation-properties-doc)
-  
+(define (translation-properties-doc-string lst)
   (let*
-      (
-       (ps (sort (map symbol->string all-translation-properties) string<?))
+      ((ps (sort (map symbol->string lst) string<?))
        (sortedsyms (map string->symbol ps))
        (propdescs
        (map
-        (lambda (x) (document-property x 'translation #f))
+        (lambda (x) (property->texi 'translation  x '()))
         sortedsyms))
-       (texi (description-list->texi propdescs))
-       )
-
-    (make <texi-node>
-      #:name "Context properties"
-      #:desc "All  context properties"
-      #:text texi)
+       (texi (description-list->texi propdescs)))
+    texi
     ))
 
 
-;(dump-node (all-contexts-doc) (current-output-port) 0 )
-
 (define (translation-doc-node)
   (make <texi-node>
     #:name "Translation"
     (list
      (all-contexts-doc)
      (all-engravers-doc)
-     (all-translation-properties-doc)
-     )
-  ))
+     (make <texi-node>
+       #:name "Tunable context properties"
+       #:desc "All tunable context properties"
+       #:text (translation-properties-doc-string
+              all-user-translation-properties))
+
+     (make <texi-node>
+       #:name "Internal context properties"
+       #:desc "All internal context properties"
+       #:text (translation-properties-doc-string
+              all-internal-translation-properties))
+     ) ) )