]> git.donarmstrong.com Git - lilypond.git/blobdiff - buildscripts/mutopia-index.py
* lily/include/my-lily-parser.hh: rename My_lily -> Lily
[lilypond.git] / buildscripts / mutopia-index.py
old mode 100755 (executable)
new mode 100644 (file)
index 4cb45ea..f64898f
@@ -3,7 +3,6 @@
 
 name = 'mutopia-index'
 
-# find.py -- deprecated in python 2.0
 import fnmatch
 import os
 
@@ -53,14 +52,24 @@ def file_exist_b (fn):
 
 
 headertext= r"""
-These example files are taken from the LilyPond distribution. 
-LilyPond currently only outputs TeX and MIDI.  The pictures and 
-PostScript files were generated using TeX, Ghostscript and some 
-graphics tools.         The papersize used for these examples is A4. 
-The  images are in PNG format, and should be viewable with any current browser.
+
+<p>You're looking at a page with some LilyPond samples.  These files
+are also included in the distribution. The output is completely
+generated from the <tt>.ly</tt> source file, without any further touch
+up.
+
 <p>
-These images are generated at approximately 180dpi. If you want a better impression of the appearance do print out one the postscript version of the samples."""
 
+The pictures are 90 dpi anti-aliased snapshots of the printed output.
+If you want a better impression of the appearance, do print out one of
+the PDF or PostScript files; they use scalable fonts, and should look
+good at any resolution.
+
+"""
+
+headertext_nopics= r"""
+<p>Nothing to be seen here, move along.
+"""
 
 #
 # FIXME breaks on multiple strings.
@@ -79,7 +88,7 @@ def read_lilypond_header (fn):
                        return dict
 
        while s:
-               m = re.search (r"""\s*(\S+)\s*=\s*([^;]+)\s*;""", s)
+               m = re.search (r'''\s*(\S+)\s*=\s*"([^"]+)"''', s)
                if m == None:
                        s = ''
                else:
@@ -94,13 +103,16 @@ def read_lilypond_header (fn):
        return dict
 
 def help ():
-       sys.stdout.write (r"""Usage: mutopia-index [options] INFILE OUTFILE
-Generate index for mutopia\n
+       sys.stdout.write (r"""Usage: mutopia-index [OPTIONS] INFILE OUTFILE
+Generate index for mutopia.
+
 Options:
   -h, --help                 print this help
-  -o,-output=FILE            write output to file.
+  -o, --output=FILE          write output to file
   -s, --subdirs=DIR         add subdir
-  --suffix=SUF                  specify suffix"""
+      --suffix=SUF          specify suffix
+      
+"""
                                          )
        sys.exit (0)
 
@@ -111,8 +123,12 @@ def gen_list(inputs, filename):
                list = open(filename, 'w')
        else:
                list = sys.stdout
-       list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
-       list.write ('<body bgcolor=white>')
+       list.write ('<html><head><title>Rendered Examples</title>\n')
+       list.write ('<style type="text/css">\n')
+       list.write ('hr { border:0; height:1; color: #000000; background-color: #000000; }\n')
+       list.write ('</style></head>\n')
+
+       list.write ('<body bgcolor=white>\n')
        
        if inputs:
                        list.write (headertext)
@@ -125,9 +141,7 @@ def gen_list(inputs, filename):
                (base, ext2) = os.path.splitext (base)          
                ext = ext2 + ext
                
-               print '%s, ' % ex
                header = read_lilypond_header(ex)
-               
                def read_dict(s, default, h =header):
                                try:
                                        ret = h[s]
@@ -137,18 +151,27 @@ def gen_list(inputs, filename):
                head = read_dict('title', os.path.basename (base))
                composer = read_dict('composer', '')
                desc = read_dict('description', '')
-               list.write('<hr>')
-               list.write('<h1>example file: %s</h1>' % head);
-               if composer <> '':
+               list.write('<hr>\n')
+               list.write('<h1>%s</h1>\n' % head);
+               if composer:
                        list.write('<h2>%s</h2>\n' % composer)
-               if desc <> '':
+               if desc:
                        list.write('%s<p>' % desc)
-               list.write ('<ul>')
+               list.write ('<ul>\n')
                def list_item(filename, desc, type, l = list):
                        if file_exist_b(filename):
-                               l.write ('<li><a href=%s>%s</a>' % (filename, desc))
+                               
+                               l.write ('<li><a href="%s">%s</a>' % (filename, desc))
+
+                               # todo: include warning if it uses \include
+                               # files.
+                               
                                size=os.stat(filename)[stat.ST_SIZE]
-                               l.write (' (%s %dk)' % (type, (size + 512) / 1024))
+                               kB=(size + 512) / 1024
+                               if kB:
+                                       l.write (' (%s %d kB)' % (type, kB))
+                               else:
+                                       l.write (' (%s %d characters)' % (type, size))
                                pictures = ['jpeg', 'png', 'xpm']
                                l.write ('\n')
 
@@ -157,12 +180,12 @@ def gen_list(inputs, filename):
                        f  = base + '-page%d.png' % pageno
                        if not file_exist_b (f):
                                break
-                       list_item(f, 'The output, page %d' % pageno, 'png')
-               list_item(base + '.ps.gz', 'The output', 'gzipped PostScript')
-               list_item(base + '.midi', 'The output', 'MIDI')
-               list.write ("</ul>");
+                       list_item(f, 'See a picture of page %d' % pageno, 'png')
+               list_item(base + '.pdf', 'Print', 'PDF')
+               list_item(base + '.midi', 'Listen', 'MIDI')
+               list.write ("</ul>\n");
 
-       list.write( "</BODY></HTML>");
+       list.write('</body></html>\n');
        list.close()
 
 import getopt
@@ -192,7 +215,5 @@ allfiles = []
 for d in dirs:
        allfiles = allfiles + find ('*.ly.txt', d)
 
-print allfiles
-
 gen_list (allfiles, outfile)