-
-;;; 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)
(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))
)
(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
(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))
+ ) ) )