+1.3.104.jcn2
+============
+
+* Separate interface description (test phase).
+
+* Makeinfo --html split fix: http://appel.lilypond.org/fred/software/texinfo-4.0.jcn2.diff
+
+* Use headers for makeinfo html output.
+
1.3.104.jcn1
============
pl 15.jcn4
- direct #... to scm parser (Thanks to Gary Houston)
+
+
+# Local variables:
+# mode: change-log
+# left-margin: 0
+# End:
rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
backdoc-WWW: $(outdir)/lilypond-internals.html
+ $(MAKE) footify
#ugh. lily/OUT/lilypond hardcoded.
# when cross-compiling, we don't have lilypond
@node Top, , , (dir)
@chapter GNU LilyPond --- The music typesetter
-@contents
-
@menu
* Tutorial:: A tutorial introduction to lilypond.
* Invoking LilyPond:: Operation.
* Index:: Unified index.
@end menu
+@contents
+
@macro keyindex {word}
@cindex \word\
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=104
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
"not set" )
"}"))))
+;; First level Interface description
;; Second level, part of element description
-(define (document-interface interface element-description)
+(define (document-interface level interface element-description)
(let* ((name (car interface))
(desc (cadr interface))
(props (caddr interface))
props)))
(string-append
- (section 2 (string-append "Interface: " (symbol->string name)))
+ (section level (string-append (interface-name (symbol->string name))))
desc
(description-list docs))))
+;; First level Interface description
+(define (document-separate-interface interface)
+ (let ((name (car interface)))
+ (string-append
+ (node (interface-name name))
+ (document-interface 2 interface '()))))
+
;; First level element description
(define (document-element iname description)
(display (string-append "\nProcessing " iname " ... ") (current-error-port))
(name (cdr (assoc 'name meta)))
(ifaces (cdr (assoc 'interface-descriptions meta)))
- (ifacedoc (map (lambda (x) (document-interface x description))
- (reverse ifaces))))
+ (ifacedoc (map (lambda (x) (document-interface 3 x description))
+ (reverse ifaces))))
(string-append
(node (element-name name))
(texi-node-menu name (map (lambda (x) (cons (element-name x) ""))
names))
doc)))
+
+;; testin.. -- how to do this
+(eval-string (ly-gulp-file "interface.scm"))
+(define interface-description-alist
+ `(
+ (general-element . ,general-element-interface)
+ (beam . ,beam-interface)
+ (clef . ,clef-interface)
+ (slur . ,slur-interface)
+ ))
+
+(define (document-all-interfaces name)
+ (string-append
+ (texi-node-menu name (map (lambda (x) (cons (interface-name x) ""))
+ (map cadr interface-description-alist)))
+ (apply string-append
+ (map document-separate-interface
+ (map cdr interface-description-alist)))))
+
+
items-alist))
"\n@end menu\n"
;; Menus don't appear in html, so we make a list ourselves
+ "\n@ignore\n"
"\n@ifhtml\n"
(description-list (map (lambda (x) (cons (reffy (car x)) (cdr x)))
items-alist))
- "\n@end ifhtml\n"))
+ "\n@end ifhtml\n"
+ "\n@end ignore\n"))
(define (texi-node-menu name items-alist)
(define (texi-file-head name file-name top items-alist)
(string-append
- "\input texinfo @c -*-texinfo-*-\n"
- "@settitle " name
+ "\\input texinfo @c -*-texinfo-*-"
"\n@setfilename " file-name ".info"
+ "\n@settitle " name
(node "Top") top
"\n@top"
(section 1 name)
- (texi-menu items-alist)))
+ (texi-menu items-alist)
+ "\n@contents"
+ ))
(define (context-name name)
(string-append "Context " name))
(define (element-name name)
(string-append "Element " name))
+(define (interface-name name)
+ name)
+
(define (reffy x)
(string-append "@ref{" x "}"))
;; Also, copies of interfaces use up lots more space, but that's
;; functional because the default property values of the interfaces
;; are described...
-(define no-copes #f)
+(define no-copies #f)
(let* ((doc (string-append
- (document-paper "LilyPond interpretation contexts")
- (document-all-engravers "LilyPond engravers")
- (document-all-elements "LilyPond backend")))
+ (document-paper "LilyPond interpretation contexts")
+ (document-all-engravers "LilyPond engravers")
+ (document-all-elements "LilyPond backend")
+ (document-all-interfaces "LilyPond interfaces")))
(name "lilypond-internals")
(outname (string-append name ".texi"))
(out (open-output-file outname)))
"LilyPond internals" name "(lilypond.info)"
'(("LilyPond interpretation contexts" . "Hierarchy and grouping of Engravers")
("LilyPond engravers" . "Engravers create Elements")
- ("LilyPond backend" . "Detailed description of all Elements")))
+ ("LilyPond backend" . "Detailed description of all Elements")
+ ("LilyPond interfaces" . "Element Interfaces")))
doc
"\n@bye")
-$(MAKEINFO) --force --output=$@ $<
$(outdir)/%.html: $(outdir)/%.texi
- -$(MAKEINFO) --force --output=$@ --html --no-headers $<
+ -$(MAKEINFO) --force --output=$@ --html $<
# we want footers even if website builds (or is built) partly
$(footify) $@