-1.5.9.jcn1
+1.5.9.jcn2
==========
+* add-html-footer.py: remove href to self. Substitute @at-variables@
+defined in html comments. Any occurrence of
+
+ <!-- @foo@=bar -->
+
+in the html page, will subsequently substitute any occurrence of @foo@
+in the same html page with `bar'.
+
* Bugfix: update-lily: remove unprotected gettext.py include.
* po update.
</td>
<td align=center valign=middle width="80%" bgcolor="#e8ffe8">
<h1>GNU LilyPond</h1>
- <h2>Welcome to the home of the GNU Music Typesetter</h2>
+ <h2>@WEB-TITLE@</h2>
</td>
</tr>
<b>What is LilyPond</b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@index.html#everyone">General information</a><br>
+ <a href="@TOP@index.html">General information</a><br>
<a href="@TOP@short-examples.html">Simple examples</a><br>
<a href="@TOP@long-examples.html">Complex examples</a><br>
</font></td></tr>
<b>Download </b>
</td></tr>
<tr><td><font size="-1">
- <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Linux</a><br>
- <a href="@TOP@Documentation/windows/out-www/installing.html">Windows</a><br>
+ <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">GNU/Linux binaries</a><br>
+ <a href="@TOP@Documentation/windows/out-www/installing.html">GNU/Windows binaries</a><br>
<a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
</font></td></tr>
<tr><td bgcolor="#e8e8ff">
@setfilename index.info
@settitle Index to LilyPond documentation
+@html
+<!--- @@WEB-TITLE@@=Documentation --->
+@end html
+
@node Top, , , (dir)
@top
@setfilename regression-test.info
@settitle LilyPond Regression test
+@html
+<!--- @@WEB-TITLE@@=Regression Test --->
+@end html
+
@c fool ls-latex
@ignore
@author Han-Wen Nienhuys and Jan Nieuwenhuizen
@setfilename AUTHORS.info
@settitle AUTHORS - who did what on GNU LilyPond-
+@html
+<!--- @@WEB-TITLE@@=Authors --->
+@end html
+
@node Top
@top
@menu
@setfilename FAQ.info
@settitle FAQ - GNU LilyPond Frequently Asked Questions
+@html
+<!--- @@WEB-TITLE@@=Frequently Asked Questions --->
+@end html
@node Top
@chapter FAQ - GNU LilyPond Frequently Asked Questions
@setfilename INSTALL.info
@settitle INSTALL - compiling and installing GNU LilyPond
+@html
+<!--- @@WEB-TITLE@@=Installation Instructions --->
+@end html
+
@node Top, , , (dir)
@top
\input texinfo @c -*-texinfo-*-
@setfilename README.info
@settitle This is the toplevel README to LilyPond
+
+@html
+<!--- @@WEB-TITLE@@=README --->
+@end html
+
@node Top, , ,
@top
@setfilename index.info
@settitle LilyPond homepage
+@html
+<!--- @@WEB-TITLE@@=Welcome to the home of the GNU Music Typesetter --->
+@end html
+
@node Top, , , (dir)
@top
\input texinfo
@setfilename glossary.info
+@html
+<!--- @@WEB-TITLE@@=Glossary --->
+@end html
+
+
@c @pagesizes 10.3in
@c @everyheading @| @thispage @|
@setfilename lilypond.info
@settitle GNU LilyPond
+@html
+<!--- @@WEB-TITLE@@=User Manual --->
+@end html
+
@dircategory GNU music project
@direntry
@node Reference Manual
@chapter Reference Manual
+@html
+<!--- @@WEB-TITLE@@=Reference Manual --->
+@end html
+
This document describes GNU LilyPond and its input format. The last
revision of this document was made for LilyPond 1.4.1. It supposes a
passing familiarity with how LilyPond input works. New users are
@c TODO: LilyPond LilyPond LilyPond
-
@node Tutorial
@chapter Tutorial
-
+
+@html
+<!--- @@WEB-TITLE@@=Tutorial --->
+@end html
+
@menu
* First steps:: Music language of LilyPond
* Simple legend:: Small table of music language symbols
+@html
+<!--- @@WEB-TITLE@@=Windows Compilation --->
+@end html
+
@section Obtaining LilyPond
You can get the latest version of LilyPond at
@setfilename installing.info
@settitle LilyPond on Windows
+@html
+<!--- @@WEB-TITLE@@=Windows Installation --->
+@end html
+
@node Top
@top
MAJOR_VERSION=1
MINOR_VERSION=5
PATCH_LEVEL=9
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
-%
-% This is NOT a lilypond input file. It is an ABC file, see
-% http://www.gre.ac.uk/~c.walshaw/abc/
-%
-% LilyPond includes import tools for Finale, Musedata, ABC, MIDI and PMX
-%
-X:1
-T:Paddy O'Rafferty
-C:Trad.
-M:6/8
-K:D
-dff cee|def gfe|dff cee|dfe dBA|dff cee|def gfe|faf gfe|1 dfe dBA:|2 dfe dcB||
-~A3 B3|gfe fdB|AFA B2c|dfe dcB|~A3 ~B3|efe efg|faf gfe|1 dfe dcB:|2 dfe dBA||
-fAA eAA|def gfe|fAA eAA|dfe dBA|fAA eAA|def gfe|faf gfe|dfe dBA:|
+\header {
+ footnotes = ""
+ tagline = "Lily was here (unknown version) -- automatically converted from ABC"
+}
+voicedefault = \notes {
+\property Score.defaultBarType="empty"
+ c''8 c''8 f''8 }
+% This is NOT a lilypond input file. It is an ABC file, see
+ % http://www.gre.ac.uk/~c.walshaw/abc/
+ %
+
+% LilyPond includes import tools for Finale, Musedata, ABC, MIDI and PMX
+ b''8 ^\downbow a''8 f''8 d''''1 b'''1 a'''1
+ b''8 a''8 e''''1 b''8 a''8 f''8 e''''1
+d''''1 b'''1 a'''1 b''8 a''8 c''8 e''''1 f''8
+b''8 a''8 b'''2 ^"~" b''8 ^"~"-. a''8 b''8 a''8
+ f''8 d''''1 b'''1 a'''1 b''8 a''8 b''8 a''8
+ a'''1 a'''1 e''''1 a'''1 a'''1 b''8 a''8
+b'''1 a'''1 b''8 a''8 d''''1 e''''1 f''8 f''8
+b'''1 a'''1 b''8 a''8 } c''8 \grace {
+ } } }
+}\score{
+ \notes <
+ \context Staff="default"
+ {
+ \voicedefault
+ }
+
+ >
+ \paper {
+ }
+ \midi {}
+}
header_tag = '<!-- header_tag -->'
footer_tag = '<!-- footer_tag -->'
+# Python < 1.5.2 compatibility
+#
+# On most platforms, this is equivalent to
+#`normpath(join(os.getcwd()), PATH)'. *Added in Python version 1.5.2*
+if os.path.__dict__.has_key ('abspath'):
+ abspath = os.path.abspath
+else:
+ def abspath (path):
+ return os.path.normpath (os.path.join (os.getcwd (), path))
+
+
+def remove_self_ref (s):
+ self_url = abspath (os.getcwd () + '/' + f)
+ #sys.stderr.write ('url0: %s\n' % self_url)
+ self_url = re.sub ('.*' + string.lower (package_name) + '[^/]*/',
+ '', self_url)
+ #sys.stderr.write ('url1: %s\n' % self_url)
+
+ #urg, ugly lily-specific toplevel index hack
+ self_url = re.sub ('.*topdocs/out-www/index.html', 'index.html', self_url)
+ #sys.stderr.write ('url2: %s\n' % self_url)
+
+ m = re.match ('.*?(<a href="[\./]*' + self_url + '#?[^"]*">)([^<]*)(</a>)',
+ s, re.DOTALL)
+ while m:
+ sys.stderr.write ('self: %s\n' % m.group (2))
+ s = s[:m.start (1)] + m.group (2) + s[m.end (3):]
+ m = re.match ('.*?(<a href="[\./]*' + self_url + '#?[^"]*">)([^<]*)(</a>)',
+ s, re.DOTALL)
+ return s
+
def do_file (f):
s = gulp_file (f)
s = re.sub ('@LOCALTIME@', localtime, s)
s = re.sub ('@MAIL_ADDRESS@', mail_address, s)
+ m = re.match ('.*?<!-- (@[a-zA-Z0-9_-]*@)=(.*?) -->', s, re.DOTALL)
+ while m:
+ at_var = m.group (1)
+ at_val = m.group (2)
+ #sys.stderr.write ('at: %s -> %s\n' % (at_var, at_val))
+ s = re.sub (at_var, at_val, s)
+ m = re.match ('.*?<!-- (@[a-zA-Z0-9_-]*@)=(.*?) -->', s, re.DOTALL)
+
+ # urg
+ s = re.sub ('@WEB-TITLE@', '-- --', s)
+
+ s = remove_self_ref (s)
+
open (f, 'w').write (s)