X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocument-translation.scm;h=2eac4bfae1fde4e053c8374d22fc48bf2855ce8d;hb=13c22c4ce1b3ba54b1d0ff0f49cf2e246151d1ba;hp=95e3cb02f033e148712c12f9b0c39ede53ff73f8;hpb=2745cbd907f8216a4cc1fc5f488ae19efdfdbd10;p=lilypond.git diff --git a/scm/document-translation.scm b/scm/document-translation.scm index 95e3cb02f0..2eac4bfae1 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,46 @@ (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) string - #:name (ly:translator-name grav) + #:name (symbol->string (ly:translator-name grav)) #:text (engraver-doc-string grav #t) )) ;; Second level, part of Context description - (define name->engraver-table (make-vector 61 '())) (map (lambda (x) @@ -114,17 +122,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 (string-append "@code{" (ref-ify (symbol->string name)) "}") (engraver-doc-string eg #f) - ) )) @@ -143,11 +152,12 @@ "Revert " "Set " ) - "grob-property " + "grob-property @code{" (symbol->string (cadr body)) - " in " (symbol->string sym) + "} in @ref{" (symbol->string sym) + "}" (if (not (null? (cddr body))) - (string-append " to " (scm->texi (cadr (cdr body)))) + (string-append " to @code{" (scm->texi (cadr (cdr body))) "}" ) ) "\n" ) @@ -156,11 +166,11 @@ ((equal? (object-property sym 'is-grob?) #t) "") ((equal? (car op) 'assign) (string-append - "@item Set translator property " + "@item Set translator property @code{" (symbol->string (car body)) - " to " + "} to @code{" (scm->texi (cadr body)) - "\n" + "}\n" ) ) ) @@ -170,26 +180,35 @@ (define (context-doc context-desc) (let* ( - (name (cdr (assoc 'type-name context-desc))) - (desc-handle (assoc (string->symbol name) context-description-alist)) - (desc (if (pair? desc-handle) (cdr desc-handle) "")) + (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\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 stringstring accepts))))) "\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) - (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* ( - (paper-alist - (sort (My_lily_parser::paper_description) + (layout-alist + (sort (ly:output-description $defaultlayout) (lambda (x y) (symbolstring (map car paper-alist)) stringstring (map car layout-alist)) string @@ -266,38 +280,30 @@ (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 #: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) 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" @@ -306,6 +312,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)) + ) ) )