X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-translation.scm;h=ac3843c6567bba09e108153921ad6c2652483cd1;hb=039d89ebe4b83ad023ed6f72fd21497e1bfb3554;hp=07aa6ea53d030a6ae8cd668462bea1b634f1ce1d;hpb=782edd5636ed17a18129da339406d6a7b1de27f2;p=lilypond.git diff --git a/scm/document-translation.scm b/scm/document-translation.scm index 07aa6ea53d..ac3843c656 100644 --- a/scm/document-translation.scm +++ b/scm/document-translation.scm @@ -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 -;;; Jan Nieuwenhuizen +;;;; document-translation.scm -- Functions for engraver documentation +;;;; +;;;; source file of the GNU LilyPond music typesetter +;;;; +;;;; (c) 2000--2004 Han-Wen Nienhuys +;;;; Jan Nieuwenhuizen (define (engraver-makes-grob? name-symbol grav) @@ -29,8 +28,8 @@ (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)))) - (name (ly:translator-name engraver)) - (name-sym (string->symbol name)) + (name-sym (ly:translator-name engraver)) + (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) @@ -62,36 +61,44 @@ (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 stringstring contexts))))) "" )))) @@ -101,7 +108,7 @@ ;; First level Engraver description (define (engraver-doc grav) (make - #:name (ly:translator-name grav) + #:name (symbol->string (ly:translator-name grav)) #:text (engraver-doc-string grav #t) )) @@ -114,17 +121,18 @@ (ly:get-all-translators)) (define (find-engraver-by-name name) + "NAME is a symbol." (hash-ref name->engraver-table name #f)) (define (document-engraver-by-name name) + "NAME is a symbol." (let* ( (eg (find-engraver-by-name name )) ) - (cons name + (cons (symbol->string name ) (engraver-doc-string eg #f) - ) )) @@ -171,26 +179,32 @@ (define (context-doc context-desc) (let* ( - (name (cdr (assoc 'type-name context-desc))) + (name-sym (cdr (assoc '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))) + (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)) - (cdr (assoc 'end-consists context-desc)) )) (props (cdr (assoc 'property-ops context-desc))) (grobs (context-grobs context-desc)) - (grob-refs (map (lambda (x) (ref-ify x)) grobs)) - ) + (grob-refs (map (lambda (x) (ref-ify x)) grobs)) ) + (make #:name name #: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" (human-listify (uniq-list (sort grob-refs stringstring accepts))))) "\n\nThis context is built from the following engravers: " (description-list->texi (map document-engraver-by-name consists)) )))) -(define (engraver-grobs grav) - (let* ( - (eg (if (string? grav) +(define (engraver-grobs grav) + (let* ((eg (if (symbol? grav) (find-engraver-by-name grav) - grav)) - - ) - + grav))) (if (eq? eg #f) '() - (map symbol->string (cdr (assoc 'grobs-created (ly:translator-description eg)))) - ) + (map symbol->string (cdr (assoc 'grobs-created (ly:translator-description eg))))) )) (define (context-grobs context-desc) (let* ( + (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)) - (cdr (assoc 'end-consists context-desc)) )) (grobs (apply append (map engraver-grobs consists)) - ) - ) + )) grobs )) -(define (symbolstring l) (symbol->string r))) + (define (all-contexts-doc) (let* ( @@ -268,8 +277,8 @@ (define all-engravers-list (ly:get-all-translators)) (set! all-engravers-list (sort all-engravers-list - (lambda (a b) (stringstring (ly:translator-name a)) + (symbol->string (ly:translator-name b)))))) (define (all-engravers-doc) (make @@ -278,28 +287,19 @@ #: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) stringstring lst) stringsymbol ps)) (propdescs (map - (lambda (x) (document-property x 'translation #f)) + (lambda (x) (property->texi 'translation x '())) sortedsyms)) - (texi (description-list->texi propdescs)) - ) - - (make - #:name "Translation properties" - #:desc "All translation properties" - #:text texi) + (texi (description-list->texi propdescs))) + texi )) -;(dump-node (all-contexts-doc) (current-output-port) 0 ) - (define (translation-doc-node) (make #:name "Translation" @@ -308,6 +308,15 @@ (list (all-contexts-doc) (all-engravers-doc) - (all-translation-properties-doc) - ) - )) + (make + #:name "Tunable context properties" + #:desc "All tunable context properties" + #:text (translation-properties-doc-string + all-user-translation-properties)) + + (make + #:name "Internal context properties" + #:desc "All internal context properties" + #:text (translation-properties-doc-string + all-internal-translation-properties)) + ) ) )