diff makeWeb.sh @ 360:01ded8741361

Use server-side includes (with Apache XBitHack setting) in web. This means that we can have one main web page, dottes.html, for each book and include the intro and tunelist to make the page. This removes the separate header and footer components. Perhaps we should use a template engine instead to generate the output. That means choosing one. And preferably one that isn't aimed only at HTML so we could use it for the printed books. More research required.
author Jim Hague <jim.hague@acm.org>
date Wed, 21 Aug 2013 10:32:50 +0100
parents 2a7d03d6a89f
children 265539086836
line wrap: on
line diff
--- a/makeWeb.sh	Wed Aug 21 10:28:10 2013 +0100
+++ b/makeWeb.sh	Wed Aug 21 10:32:50 2013 +0100
@@ -24,6 +24,7 @@
 webdir=$dir/web/$1
 graphicsdir=$dir/graphics/$1
 output=index.html
+tunelist=tunelist.html
 booke=$1
 masterbooke=$2
 title=$booke
@@ -37,9 +38,6 @@
 if [ -r $bookedir/subtitle.txt ]; then
     subtitle=`cat $bookedir/subtitle.txt`
 fi
-if [ -r $bookedir/intro.txt ]; then
-    intro=`txt2tags --no-headers --target=html --outfile=- $bookedir/intro.txt`
-fi
 
 if [ -n "$instrument" ]; then
     title="${title} ($instrument)"
@@ -49,8 +47,20 @@
 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
+    -e "s/@TITLE@/$title/" -e "s/@BOOK@/$booke/" dottes.html > $webdir/$output
+
+# Mark output as executable so it is scanned for server-side includes.
+chmod +x $webdir/$output
+
+for item in intro
+do
+    rm -f $webdir/$item.html
+    if [ -r $booke/$item.txt ]; then
+        txt2tags --no-headers --target=html --outfile=$webdir/$item.html $booke/$item.txt
+    else
+        touch $webdir/$item.html
+    fi
+done
 
 # Copy in the book PDFs. Like the graphics, Midi etc. these are assumed
 # to be already generated.
@@ -103,7 +113,5 @@
             -e "s/@TUNE@/${name}/" dottes.html.tune > $webdir/$tunepage
 
         sed -e "s/@TITLE@/${title//&/\&}/" \
-            -e "s/@TUNE@/${name}/" dottes.html.tuneindex >> $webdir/$output
+            -e "s/@TUNE@/${name}/" dottes.html.tuneindex >> $webdir/$tunelist
     done
-
-cat dottes.html.footer >> $webdir/$output