Mercurial > dottes
view makeWeb.sh @ 229:1e4443d58177
Modify Change tune handling.
Change all change notes to reference the filename of the tune to change to.
Modify web and document generators to pull the change note out of the abc
and generate an appropiate bit of content. This is now, in both cases,
a hyperlink.
In the process, remove the tune-specific .tex facility. It wasn't being
used.
I could really do with a proper templating system, and using some sort
of templating in the LaTeX generation.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Sat, 23 Feb 2013 13:10:58 +0000 |
parents | 0ef955669a9a |
children | c61e76799e51 |
line wrap: on
line source
#!/bin/bash # # Build the website. The common items and the web items are assumed # to be already built. # #set -x # Restore titles like 'Exploding Potato, The' to the # expected 'The Exploding Potato'. fixtitle() { retval=`echo "$1" | sed -e "s/\(.*\), *\(.*\)/\2 \1/"` } if [ $# -lt 2 -o $# -gt 3 ]; then echo "Usage: makeWeb.sh <book dir name> <master book dir name> [<instrument name>]" exit 1 fi dir=`pwd` bookedir=$dir/$1 webdir=$dir/web/$1 graphicsdir=$dir/graphics/$1 output=index.html booke=$1 masterbooke=$2 title=$booke instrument=$3 buildno=`cat buildno.txt` subtitle= intro= if [ -r $bookedir/subtitle.txt ]; then subtitle=`cat $bookedir/subtitle.txt` fi if [ -r $bookedir/intro.txt ]; then intro=`cat $bookedir/intro.txt` fi if [ -n "$instrument" ]; then title="${title} ($instrument)" subtitle="${subtitle} ($instrument)" fi mkdir -p $webdir sed -e "s/@BUILD@/$buildno/" -e "s/@SUBTITLE@/$subtitle/" \ -e "s/@TITLE@/$title/" -e "s/@INTRO@/$intro/" \ -e "s/@BOOK@/$booke/" dottes.html.header > $webdir/$output # Copy in the book PDFs. Like the graphics, Midi etc. these are assumed # to be already generated. cp $1-*.pdf $webdir # Now, for each tune, make the tune graphic and sound. find $bookedir -name "*.abc" | sort | while read filename do name=`basename $filename .abc` title=`$dir/abcfield.py --field T --html $filename` fixtitle "$title" title=$retval changefile=`$dir/abcfield.py --field N $filename | grep "Change:" | sed -e "s/Change: *//"` changetitle="" changevisibility="no" if [ -n "$changefile" ]; then changetitle=`$dir/abcfield.py --field T --html $bookedir/$changefile` changevisibility="yes" fixtitle "$changetitle" changetitle=$retval fi # Copy tune PDF from common graphics. cp $graphicsdir/${name}.pdf $webdir # And copy the ABC. cp $filename $webdir # Generate the tune web page. tunepage=${name}.html # If the title contains HTML character entities, escape # initial '&' in the title - it means things to sed. sed -e "s/@TITLE@/${title//&/\&}/" \ -e "s/@MASTERBOOKE@/${masterbooke}/" \ -e "s/@CHANGETITLE@/${changetitle//&/\&}/" \ -e "s/@CHANGETUNE@/${changefile/.abc/.html}/" \ -e "s/@CHANGEVISIBILITY@/${changevisibility}/" \ -e "s/@TUNE@/${name}/" dottes.html.tune > $webdir/$tunepage sed -e "s/@TITLE@/${title//&/\&}/" \ -e "s/@TUNE@/${name}/" dottes.html.tuneindex >> $webdir/$output done cat dottes.html.footer >> $webdir/$output