Mercurial > dottes
view makeWeb.sh @ 312:8bc92e044e0a
Move tune and first line inclusion code into macros.
Also use tune title, not name, as hyperlink targets. This removes the need to pass
the name into the macros.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Fri, 12 Jul 2013 11:36:14 +0100 |
parents | 07e9fa311c6f |
children | cbe9c10b5a3e |
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` # Remove trailing % added for Latex purposes. buildno=${buildno%%%} 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