X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fdocumentation-lib.scm;h=0c9a1f117b37cadb1f7876f40a7e7516f654aed7;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=10c66c36a5fa4a95326436b28dcfefd0db9825a4;hpb=3b2376c6828136cdbc078015c0b9bee26bffb448;p=lilypond.git diff --git a/scm/documentation-lib.scm b/scm/documentation-lib.scm index 10c66c36a5..0c9a1f117b 100644 --- a/scm/documentation-lib.scm +++ b/scm/documentation-lib.scm @@ -3,7 +3,7 @@ ;;;; ;;;; source file of the GNU LilyPond music typesetter ;;;; -;;;; (c) 2000--2004 Han-Wen Nienhuys +;;;; (c) 2000--2008 Han-Wen Nienhuys ;;;; Jan Nieuwenhuizen (use-modules (oop goops) @@ -11,6 +11,7 @@ (srfi srfi-1)) (define-class () + (appendix #:init-value #f #:accessor appendix? #:init-keyword #:appendix) (children #:init-value '() #:accessor node-children #:init-keyword #:children) (text #:init-value "" #:accessor node-text #:init-keyword #:text) (name #:init-value "" #:accessor node-name #:init-keyword #:name) @@ -21,13 +22,16 @@ (node-name x) (node-desc x))) -(define (dump-node node port level) +(define* (dump-node node port level) (display (string-append "\n@node " - (node-name node) - "\n\n" - (texi-section-command level) " " + (if (= level 0) "Top" (node-name node)) + "\n" + (if (appendix? node) + (texi-appendix-section-command level) + (texi-section-command level)) + " " (node-name node) "\n\n" (node-text node) @@ -42,7 +46,7 @@ (node-children node))) (define (processing name) - (display (string-append "\nProcessing " name " ... ") (current-error-port))) + (ly:message (_ "Processing ~S...") name)) (define (self-evaluating? x) (or (number? x) (string? x) (procedure? x) (boolean? x))) @@ -54,43 +58,43 @@ (string-append "@code{" (texify (scm->string x)) "}")) -;; -;; don't confuse users with # syntax. -;; -(define (scm->string val) - (if (and (procedure? val) (symbol? (procedure-name val))) - (symbol->string (procedure-name val)) - (string-append - (if (self-evaluating? val) "" "'") - (call-with-output-string (lambda (port) (display val port)))))) - (define (texi-section-command level) (cdr (assoc level '( ;; Hmm, texinfo doesn't have ``part'' (0 . "@top") - (1 . "@unnumbered") - (2 . "@unnumberedsec") - (3 . "@unnumberedsubsec") + (1 . "@chapter") + (2 . "@section") + (3 . "@subsection") (4 . "@unnumberedsubsubsec") (5 . "@unnumberedsubsubsec"))))) +(define (texi-appendix-section-command level) + (cdr (assoc level '((0 . "@top") + (1 . "@appendix") + (2 . "@appendixsec") + (3 . "@appendixsubsec") + (4 . "@appendixsubsubsec") + (5 . "@appendixsubsubsec"))))) + (define (one-item->texi label-desc-pair) - "Document one (LABEL . DESC); return empty string if LABEL is empty string. -" + "Document one (LABEL . DESC); return empty string if LABEL is empty string." (if (eq? (car label-desc-pair) "") "" (string-append "\n@item " (car label-desc-pair) "\n" (cdr label-desc-pair)))) -(define (description-list->texi items-alist) - "Document ITEMS-ALIST in a table. entries contain (item-label -. string-to-use) -" +(define (description-list->texi items-alist quote?) + "Document ITEMS-ALIST in a table; entries contain (item-label . +string-to-use). If QUOTE? is #t, embed table in a @quotation environment." (string-append - "\n@table @asis\n" + "\n" + (if quote? "@quotation\n" "") + "@table @asis\n" (apply string-append (map one-item->texi items-alist)) - "\n@end table\n")) + "\n" + "@end table\n" + (if quote? "@end quotation\n" ""))) (define (texi-menu items-alist) "Generate what is between @menu and @end menu." @@ -112,7 +116,8 @@ "\n@ignore\n" "\n@ifhtml\n" (description-list->texi (map (lambda (x) (cons (ref-ify (car x)) (cdr x))) - items-alist)) + items-alist) + #t) "\n@end ifhtml\n" "\n@end ignore\n"))) @@ -121,13 +126,13 @@ "\\input texinfo @c -*-texinfo-*-" "\n@setfilename " file-name ".info" "\n@settitle " name - "\n@dircategory GNU music project" + "\n@dircategory LilyPond" "\n@direntry" ;; prepend GNU for dir, must be unique "\n* GNU " name ": (" file-name "). " name "." "\n@end direntry\n" "@documentlanguage en\n" - "@documentencoding ISO-8859-1\n")) + "@documentencoding utf-8\n")) (define (context-name name) name) @@ -147,17 +152,17 @@ "Add ref to X" (string-append "@ref{" x "}")) -(define (human-listify l) - "Produce a textual enumeration from L, a list of strings" +(define (human-listify lst) + "Produce a textual enumeration from LST, a list of strings" (cond - ((null? l) "none") - ((null? (cdr l)) (car l)) - ((null? (cddr l)) (string-append (car l) " and " (cadr l))) - (else (string-append (car l) ", " (human-listify (cdr l)))))) + ((null? lst) "none") + ((null? (cdr lst)) (car lst)) + ((null? (cddr lst)) (string-append (car lst) " and " (cadr lst))) + (else (string-append (car lst) ", " (human-listify (cdr lst)))))) (define (writing-wip x) - (display (string-append "\nWriting " x " ... ") (current-error-port))) + (ly:message (_ "Writing ~S...") x)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -179,7 +184,7 @@ with init values from ALIST (1st optional argument) (handle (assoc sym alist))) (if (eq? desc #f) - (error "No description for property ~S" sym)) + (ly:error (_ "cannot find description for property ~S (~S)") sym where)) (cons (string-append "@code{" name "} "