Mercurial > dottes
view makeWeb.sh @ 738:69a7499817c8 build-default-284
On Nook and A5 prints, start a new page with each tune and centre vertically..
A5 mostly did, but ran into trouble with longer comments on a tune.
This may give blank space after tunes where a long comment overflows
onto another page, but I think for now it's better to have each tune
at the top of the page.
Or rather, and this is the other change, in the middle of the page. Centre
the page content for A5 and Nook.
author | Jim Hague <jim.hague@acm.org> |
---|---|
date | Thu, 12 Oct 2017 14:50:51 +0100 |
parents | c81a1ed21877 |
children | ce5c7214f9aa |
line wrap: on
line source
#!/bin/bash # # Build the website. The common items and the web items are assumed # to be already built. This generates the MusicXML and the page HTML # and shuffles other files ino the right place. # #set -x 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` booke=$1 masterbooke=$2 bookedir=$dir/$1 masterbookedir=$dir/$2 webdir=$dir/web/$1 graphicsdir=$dir/graphics/$1 output=index.html tunelist=tunelist.html title=$booke instrument=$3 abc2xml=$dir/abc2xml/abc2xml.py 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 [ -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/@BOOK@/$booke/" dottes.html > $webdir/$output for item in intro do rm -f $webdir/$item.html if [ -r $bookedir/$item.md ]; then pandoc --from=markdown --to=html --output=$webdir/$item.html $bookedir/$item.md else touch $webdir/$item.html fi done # Copy in any htaccess. if [ -r $masterbookedir/htaccess ]; then cp $masterbookedir/htaccess $webdir/.htaccess fi # 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 page. rm -f $webdir/$tunelist declare -a filenames filenames=(`find $bookedir -name "*.abc" | sort`) nofiles=${#filenames[@]} for (( i=0; i < ${nofiles}; i++ )) do filename=${filenames[$i]} name=`basename $filename .abc` # Copy the ABC into the web. cp $filename $webdir # Generate MusicXML into the web. python $abc2xml $filename > ${webdir}/${name}.xml # If we are not the master booke, link the mp3s in from the # master page in a desperate attempt to make IE8 work. # The Jenkins archive will dereference the soft link, it seems, # but I guess I can live with copies of the MP3 for now. if [ "$booke" != "$masterbooke" ]; then pushd ${webdir} > /dev/null ln -f -s ../${masterbooke}/*${name}.mp3 . popd > /dev/null fi # Get date and time of last change to tune. lastchanged=`hg log --limit 1 --template "{date|shortdate}" $masterbookedir/${name}.abc` # Get previous and next tunes, if available. prevarg="" prevpage="" nextarg="" nextpage="" if [ $i -gt 0 ]; then prev=${filenames[$((i - 1))]} prevpage=`basename $prev .abc`.html prevarg="--prev $prev" fi if [ $i -lt $((nofiles - 1)) ]; then next=${filenames[$((i + 1))]} nextpage=`basename $next .abc`.html nextarg="--next $next" fi # Generate the tune web page. tunepage=${name}.html learnerpage=learner-${name}.html $dir/abctemplate.py \ --value "masterbooke=${masterbooke}" \ --value "lastchanged=${lastchanged}" \ --value "prevpage=${prevpage}" \ --value "nextpage=${nextpage}" \ ${prevarg} ${nextarg} \ --template dottes.html.tune \ $filename > $webdir/$tunepage $dir/abctemplate.py \ --value "masterbooke=${masterbooke}" \ --value "lastchanged=${lastchanged}" \ --value "prevpage=${prevpage}" \ --value "nextpage=${nextpage}" \ ${prevarg} ${nextarg} \ --template dottes.html.learnertune \ $filename > $webdir/$learnerpage $dir/abctemplate.py --template dottes.html.tuneindex $filename >> $webdir/$tunelist done