#!/bin/bash

umask 022

# verwendet './varianten_ermitteln' und './mksvg'

### Konfiguration
wohin='nikolaus'
svg="$wohin/svg"
jpg="$wohin/jpg"
skripte="$wohin/skripte"


### Vorbereitungen
for dir in $wohin $svg $jpg $skripte
do
   test -d $dir || mkdir -p $dir
done

cp varianten_ermitteln mksvg mkalles $skripte/.
cp starr/common_styles.css $wohin/.
cp -r starr/icons $wohin/.
(cat starr/index.html lizenz; echo -e "</div>\n\n</body>\n</html>") > $skripte/index.html

svgdocument="$wohin/index.html"
jpgdocument="$wohin/index-jpg.html"

title='Das Haus vom Nikolaus'


### Kopf bauen (Teil 1)
for document in $svgdocument $jpgdocument
do
    cat > $document <<____EOF
<?xml version='1.0' encoding='ISO-8859-15'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN'
    'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'
      xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
      xml:lang='de' >
<head>
<title>$title</title>
<meta name='DC.rights' scheme='DCTERMS.URI' content='http://creativecommons.org/licenses/by-sa/2.0/de/' />
<link rel='copyright' href='http://creativecommons.org/licenses/by-sa/2.0/de/' title='Creative Commons Attribution-ShareAlike 2.0' />
<link rel='stylesheet' type='text/css' href='./common_styles.css' />
____EOF
done


### Zusatz-CSS-Zeile für JPG
cat >> $jpgdocument <<EOF
<style type='text/css'>
    .text img { width:88px; height:31px; }
</style>
EOF


### Kopf bauen (Teil 2) und Seitenanfang bauen
for document in $svgdocument $jpgdocument
do
    cat >> $document <<____EOF
</head>
<body>

<h1>$title</h1>

<div class='text'>
    Liste aller Varianten, es zu zeichnen.<br />
    Zu jeder hier abgebildeten Variante gibt es auch eine an der senkrechten
    Achse gespiegelte Variante sowie die M&ouml;glichkeit, sie in umgekehrter
    Richtung zu durchlaufen. Die dadurch gegebenen zus&auml;tzlichen 2x44
    Varianten &uuml;berschneiden sich aber komplett, so dass es insgesamt
    nicht 132, sondern nur 88 verschiedene Varianten gibt.
</div>

<div class='bilder'>
____EOF
done


### Bilder machen und notieren
./varianten_ermitteln | \
awk '{printf("%02d %s\n",NR,$0)}' | \
while read nr route
do
    rumpf="nik$nr"
    echo -n "Baue Bild <$rumpf>:"
    svgbild="svg/$rumpf.svg"
    jpgbild="jpg/$rumpf.jpg"

    echo $nr $route | ./mksvg >$wohin/$svgbild && echo -n ' MKSVG_OK'

    # Umwandlung: convert -size 60x90 x.svg x.jpg
    # size-Angabe kann entfallen, wenn im SVG eine width/height-Angabe
    # ist. Aus 1.4x2.1 wird dann 57x85.
    # (Das entspricht irgendetwas zwischen 40 und 41 dpi. 16 dots per cm
    # passen. dots per point ergeben eine krumme Zahl knapp unter 3000.)
    #
    # Bei Umwandlung von SVG nach JPG landet alles, was in XML-Kommentare
    # (<!-- -->) eingefasst ist, im JPEG-Kommentarfeld -- einschließlich
    # Leerzeichen und Zeilenumbrüchen. Also Obacht!

    convert -size 60x90 $wohin/$svgbild $wohin/$jpgbild && echo -n ' CONVERT_OK'
    echo "    <p>Nr. $nr <object data='$svgbild' type='image/svg+xml' /></p>" >> $svgdocument
    echo "    <p>Nr. $nr <img src='$jpgbild' alt='Skizze Variante $nr' width='60' height='90' /></p>"  >> $jpgdocument
    echo ''
done


### Fuss bauen (Teil 1)
for document in $svgdocument $jpgdocument
do
    cat >> $document <<____EOF
</div>

<div class='text'>
    <a href='http://creativecommons.org/licenses/by-sa/2.0/de/'><img
        src='icons/by-sa_de_88x31.png' title='Dieser Inhalt ist unter einer Creative-Commons-Lizenz lizensiert.'
        alt='Lizenz' height='31' width='88' /></a>
    <a href='http://validator.w3.org/check?uri=referer'><img
        src='icons/valid-xhtml11.png' title='Dieses Dokument ist gültiges XHTML 1.1.'
        alt='Valid XHTML 1.1' height='31' width='88' /></a>
____EOF
done


### Fuss bauen (Sonderregel fuer SVG)
cat >> $svgdocument <<EOF
    <img src='icons/valid-svg11-blue.png' title='Alle Bilder sind gültiges SVG 1.1.'
        alt='Valid XHTML 1.1' height='31' width='88' />
EOF


### Fuss bauen (Separate Texte fuer SVG und JPG)
echo "    &middot; <a href='index.html'>Komplett skalierbare Variante dieser Seite</a>"   >> $jpgdocument
echo "    &middot; <a href='index-jpg.html'>Sicherer druckbare Variante dieser Seite</a>" >> $svgdocument


### Fuss bauen (Teil 2)
for document in $svgdocument $jpgdocument
do
    cat >> $document <<____EOF
    &middot; <a href='./skripte/index.html'>Skripte</a>
</div>

<div class='licencenote'>
____EOF
    cat lizenz >> $document
    cat >> $document <<____EOF
</div>

</body>
</html>
____EOF
done

