Mercurial > dottes
view makeWeb.sh @ 202:540511b14c73
Handle '&' appearing in HTML output from tune titles.
It must be escaped or sed will substitute the pattern being searched for
at that point in the result.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Sun, 17 Feb 2013 01:29:44 +0000 |
parents | b8d18ccdc6e4 |
children | 9502f4883006 |
line wrap: on
line source
#!/bin/bash # # Build the website. The common items and the web items are assumed # to be already built. # if [ $# -lt 1 -o $# -gt 2 ]; then echo "Usage: makeWeb.sh <book dir name> [<instrument name>]" exit 1 fi dir=`pwd` bookedir=$dir/$1 webdir=$dir/web/$1 graphicsdir=$dir/graphics/$1 output=index.html title=$1 booke=$1 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 "$2" ]; then title="${title/-.*$//} ($2)" subtitle="${subtitle} ($2)" 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 title=`$dir/abcfield.py --field T --html $filename` name=`basename $filename .abc` # 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 sed -e "s/@TITLE@/${title//&/\&}/" \ -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