X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-translation.scm;h=a9bf143c3d2d319c1836fe3a81fb9173ae41f880;hb=4fb58e4f5800040213a1677151480cf05223ca9d;hp=38b74e25d89b99ec4b5e1b2115094ce28a73134b;hpb=1806f0b1a3ca989203675dc8f44387a076acdffa;p=lilypond.git diff --git a/scm/document-translation.scm b/scm/document-translation.scm index 38b74e25d8..a9bf143c3d 100644 --- a/scm/document-translation.scm +++ b/scm/document-translation.scm @@ -1,8 +1,8 @@ ;;;; document-translation.scm -- Functions for engraver documentation ;;;; ;;;; source file of the GNU LilyPond music typesetter -;;;; -;;;; (c) 2000--2007 Han-Wen Nienhuys +;;;; +;;;; (c) 2000--2009 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen (define (engraver-makes-grob? name-symbol grav) @@ -19,12 +19,12 @@ (engraver-accepts-music-types? (cdr types) grav)))) (define (engraver-doc-string engraver in-which-contexts) - (let* ((propsr (cdr (assoc 'properties-read (ly:translator-description engraver)))) - (propsw (cdr (assoc 'properties-written (ly:translator-description engraver)))) - (accepted (cdr (assoc 'events-accepted (ly:translator-description engraver)))) + (let* ((propsr (assoc-get 'properties-read (ly:translator-description engraver))) + (propsw (assoc-get 'properties-written (ly:translator-description engraver))) + (accepted (assoc-get 'events-accepted (ly:translator-description engraver))) (name-sym (ly:translator-name engraver)) (name-str (symbol->string name-sym)) - (desc (cdr (assoc 'description (ly:translator-description engraver)))) + (desc (assoc-get 'description (ly:translator-description engraver))) (grobs (engraver-grobs engraver))) (string-append @@ -34,31 +34,31 @@ (string-append "Music types accepted:\n\n" (human-listify - (map (lambda (x) - (string-append - "@ref{" - (symbol->string x) - "}")) accepted))) + (map ref-ify (sort (map symbol->string accepted) ly:string-citexi - (map (lambda (x) (property->texi 'translation x '())) propsr))) + (map (lambda (x) (property->texi 'translation x '())) + (sort propsr ly:symbol-citexi - (map (lambda (x) (property->texi 'translation x '())) propsw)))) + (map (lambda (x) (property->texi 'translation x '())) + (sort propsw ly:symbol-cistring contexts) + ly:string-cistring contexts) stringengraver-table name #f)) (define (document-engraver-by-name name) "NAME is a symbol." - + (let* ((eg (find-engraver-by-name name))) (cons (string-append "@code{" (ref-ify (symbol->string name)) "}") @@ -138,41 +145,39 @@ context-sym (scm->texi (car args)))) ))) - + (define (context-doc context-desc) - (let* ((name-sym (cdr (assoc 'context-name context-desc))) + (let* ((name-sym (assoc-get 'context-name context-desc)) (name (symbol->string name-sym)) - (aliases (map symbol->string (cdr (assoc 'aliases context-desc)))) - (desc-handle (assoc 'description context-desc)) - (desc (if (and (pair? desc-handle) (string? (cdr desc-handle))) - (cdr desc-handle) "(not documented)")) - - (accepts (cdr (assoc 'accepts context-desc))) - (consists (cdr (assoc 'consists context-desc))) - (props (cdr (assoc 'property-ops context-desc))) + (aliases (map symbol->string (assoc-get 'aliases context-desc))) + (desc (assoc-get 'description context-desc "(not documented")) + (accepts (assoc-get 'accepts context-desc)) + (consists (assoc-get 'consists context-desc)) + (props (assoc-get 'property-ops context-desc)) (grobs (context-grobs context-desc)) - (grob-refs (map (lambda (x) (ref-ify x)) grobs))) + (grob-refs (map ref-ify (sort grobs ly:string-ci #:name name #:text - (string-append + (string-append desc (if (pair? aliases) (string-append "\n\nThis context also accepts commands for the following context(s):\n\n" - (human-listify aliases) + (human-listify (sort aliases ly:string-cistring accepts))) + (human-listify (map ref-ify (sort (map symbol->string accepts) + ly:string-citexi (map document-engraver-by-name consists)))))))) + "\n\nThis context is built from the following engraver(s):" + (description-list->texi + (map document-engraver-by-name (sort consists ly:symbol-cistring (cdr (assoc 'grobs-created (ly:translator-description eg))))))) + (map symbol->string (assoc-get 'grobs-created (ly:translator-description eg)))))) (define (context-grobs context-desc) (let* ((group (assq-ref context-desc 'group-type)) @@ -211,7 +219,7 @@ (if group (list group) '()) - (cdr (assoc 'consists context-desc)))) + (assoc-get 'consists context-desc))) (grobs (apply append (map engraver-grobs consists)))) grobs)) @@ -219,8 +227,8 @@ (define (all-contexts-doc) (let* ((layout-alist (sort (ly:output-description $defaultlayout) - (lambda (x y) (symbolstring (map car layout-alist)) stringstring (map car layout-alist)) ly:string-ci @@ -232,25 +240,25 @@ (define all-engravers-list (ly:get-all-translators)) (set! all-engravers-list (sort all-engravers-list - (lambda (a b) (stringstring (ly:translator-name a)) + (lambda (a b) (ly:string-cistring (ly:translator-name a)) (symbol->string (ly:translator-name b)))))) (define (all-engravers-doc) (make - #:name "Engravers" - #:desc "All separate engravers." + #:name "Engravers and Performers" + #:desc "All separate engravers and performers." #:text "See @ruser{Modifying context plug-ins}." #:children (map engraver-doc all-engravers-list))) (define (translation-properties-doc-string lst) - (let* ((ps (sort (map symbol->string lst) stringstring lst) ly:string-cisymbol ps)) (propdescs (map (lambda (x) (property->texi 'translation x '())) sortedsyms)) - (texi (description-list->texi propdescs))) + (texi (description-list->texi propdescs #f))) texi)) (define (translation-doc-node)