comparison makeWeb.sh @ 588:afc031477784

Replace sed substitution with Python templating for HTML and LaTeX output.
author Jim Hague <jim.hague@acm.org>
date Wed, 02 Nov 2016 00:21:18 +0000
parents daa3b76bd11f
children 4e92928fcfc2
comparison
equal deleted inserted replaced
587:1b79867b4f35 588:afc031477784
64 find $bookedir -name "*.abc" | sort | 64 find $bookedir -name "*.abc" | sort |
65 while read filename 65 while read filename
66 do 66 do
67 name=`basename $filename .abc` 67 name=`basename $filename .abc`
68 68
69 # Extract items to substitute in the web page.
70 title=`$dir/abcfield.py --field T --display $filename`
71 subtitle=`$dir/abcfield.py --index 2 --field T --display $filename`
72 composer=`$dir/abcfield.py --field C $filename`
73 changefile=`$dir/abcfield.py --field N --starts "Change:" $filename`
74 changetitle=""
75 changevisibility="no"
76 if [ -n "$changefile" ]; then
77 changetitle=`$dir/abcfield.py --field T --display $bookedir/$changefile`
78 changevisibility="yes"
79 fi
80 credit=`$dir/abcfield.py --field N --starts "Credit:" $filename`
81 creditvisibility="no"
82 if [ -n "$credit" ]; then
83 creditvisibility="yes"
84 fi
85 lastchanged=`hg log --limit 1 --template "{date|shortdate}" $masterbookedir/${name}.abc`
86 key=`$dir/abcfield.py --field K --display $filename`
87
88 # Copy the ABC into the web. 69 # Copy the ABC into the web.
89 cp $filename $webdir 70 cp $filename $webdir
90 71
91 # Generate MusicXML into the web. 72 # Generate MusicXML into the web.
92 python $abc2xml $filename > ${webdir}/${name}.xml 73 python $abc2xml $filename > ${webdir}/${name}.xml
99 pushd ${webdir} > /dev/null 80 pushd ${webdir} > /dev/null
100 ln -f -s ../${masterbooke}/*${name}.mp3 . 81 ln -f -s ../${masterbooke}/*${name}.mp3 .
101 popd > /dev/null 82 popd > /dev/null
102 fi 83 fi
103 84
85 # Get date and time of last change to tune.
86 lastchanged=`hg log --limit 1 --template "{date|shortdate}" $masterbookedir/${name}.abc`
87
104 # Generate the tune web page. 88 # Generate the tune web page.
105 tunepage=${name}.html 89 tunepage=${name}.html
106 learnerpage=learner-${name}.html 90 learnerpage=learner-${name}.html
107 91
108 # If the title contains HTML character entities, escape 92 $dir/abctemplate.py --value "masterbooke=${masterbooke}" --value "lastchanged=${lastchanged}" --template dottes.html.tune $filename > $webdir/$tunepage
109 # initial '&' in the title - it means things to sed. 93 $dir/abctemplate.py --value "masterbooke=${masterbooke}" --value "lastchanged=${lastchanged}" --template dottes.html.learnertune $filename > $webdir/$learnerpage
110 sed -e "s/@TITLE@/${title//&/\\&}/" \ 94 $dir/abctemplate.py --template dottes.html.tuneindex $filename >> $webdir/$tunelist
111 -e "s/@SUBTITLE@/${subtitle}/" \
112 -e "s/@COMPOSER@/${composer}/" \
113 -e "s/@KEY@/${key}/" \
114 -e "s/@MASTERBOOKE@/${masterbooke}/" \
115 -e "s/@CHANGETITLE@/${changetitle//&/\\&}/" \
116 -e "s/@CHANGETUNE@/${changefile/.abc/.html}/" \
117 -e "s/@CHANGEVISIBILITY@/${changevisibility}/" \
118 -e "s/@CREDIT@/${credit}/" \
119 -e "s/@CREDITVISIBILITY@/${creditvisibility}/" \
120 -e "s/@LASTCHANGED@/${lastchanged}/" \
121 -e "s/@TUNE@/${name}/" dottes.html.tune > $webdir/$tunepage
122
123 sed -e "s/@TITLE@/${title//&/\\&}/" \
124 -e "s/@SUBTITLE@/${subtitle}/" \
125 -e "s/@COMPOSER@/${composer}/" \
126 -e "s/@KEY@/${key}/" \
127 -e "s/@MASTERBOOKE@/${masterbooke}/" \
128 -e "s/@CHANGETITLE@/${changetitle//&/\\&}/" \
129 -e "s/@CHANGETUNE@/${changefile/.abc/.html}/" \
130 -e "s/@CHANGEVISIBILITY@/${changevisibility}/" \
131 -e "s/@CREDIT@/${credit}/" \
132 -e "s/@CREDITVISIBILITY@/${creditvisibility}/" \
133 -e "s/@LASTCHANGED@/${lastchanged}/" \
134 -e "s/@TUNE@/${name}/" dottes.html.learnertune > $webdir/$learnerpage
135
136 sed -e "s/@TITLE@/${title//&/\\&}/" \
137 -e "s/@TUNE@/${name}/" dottes.html.tuneindex >> $webdir/$tunelist
138 done 95 done