view makeWeb.sh @ 608:b4eb1753c80f

Up the resolution of the web graphics. This will result in increased image size, on the order of 18k->32k, but I'm fed up with the blurriness of the current images. Ideally I'd move to SVG for the web images, but Mick reckons that SVG support on mobile browsers is still limited. Suspect he's probably right.
author Jim Hague <jim.hague@acm.org>
date Fri, 04 Nov 2016 23:31:40 +0000
parents afc031477784
children 4e92928fcfc2
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 $booke/$item.md ]; then
        pandoc --from=markdown --to=html --output=$webdir/$item.html $booke/$item.md
    else
        touch $webdir/$item.html
    fi
done

# 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
find $bookedir -name "*.abc" | sort |
    while read filename
    do
        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`

        # Generate the tune web page.
        tunepage=${name}.html
        learnerpage=learner-${name}.html

        $dir/abctemplate.py --value "masterbooke=${masterbooke}" --value "lastchanged=${lastchanged}" --template dottes.html.tune $filename > $webdir/$tunepage
        $dir/abctemplate.py --value "masterbooke=${masterbooke}" --value "lastchanged=${lastchanged}" --template dottes.html.learnertune $filename > $webdir/$learnerpage
        $dir/abctemplate.py --template dottes.html.tuneindex $filename >> $webdir/$tunelist
    done