| >
#!/bin/sh # Dieses verantwortungslose Script bastelt fuer faule Saecke wie mich # mal eben ne Webseite aus nem Haufen haesslicher Fotos. # Benutzung: einfach im Verzeichnis mit den Bildern starten. # Viel Spass, Wuffel #echo -e "\nEditier mich:\n" $0 #exit 23 ################### Beginn Configsektion ######################## # WICHTIG! # Welcher Kommentar kommt in die jpgs? # Wenn du da nix anderes reinschreibst, steht mein Name in deinen Bildern! # Bitte Schablone beachten, der Text darf nicht unendlich lang sein. # export MUSTER='#################################################################' export EXIFTEXT='Wolfgang Nowak Germany 26123 Oldenburg Donarstr.2 exiftag@i21k.de' # Sollen die Vorschaubildchen immer neu berechnet werden? OVERWRITE=0 # border Width von Frames festlegen BW=0 # Die Farben für den Vorschauframe COLORSET='text="#000000" bgcolor="#a00000"' # Die Farbe für den "back"-Button BACKBUTTON='text="#a0a000" bgcolor="#b00000"' # Der Names des Unterverzeichnisses fuer die Vorschaubildchen MKBDIR=.mkb3 [ -d $MKBDIR ] || mkdir $MKBDIR # chmod 755 $MKBDIR || { echo -e '\n Permissionproblem, stopping now \n'; exit 23 } ################### Ende Configsektion ######################## # alte index.html mal besser mit Zeitstempel wegbunkern [ -e index.html ] && cp index.html index.html.`date +%Y%m%d%H%M` # Ne geistreiche Namensgebung für die Seite, entweder via Kommandozeile oder aus dem Verzeichnisnamen # Bei -f sollen alte Vorschaubilder geloescht werden # In $2 sollte der "Name" drin sein, sosnt aber auch in $1, falls kein -f erwünscht ist if [ -n "$1" ] ; then { if [ "$1" = "-f" ] ; then { OVERWRITE=1 rm -f $MKBDIR/mini*png $MKBDIR/mini*jpg $MKBDIR/mini*PNG $MKBDIR/mini*JPG [ -n "$2" ] && name="$2" } elif [ "$1" = "-h" ] ; then { echo -e "Makes html-picturepages. -h=this help -- -f=force overwrite thumpnailpictures -- any other text becomes the title of the page\n" exit 0 } else { name="$@" } fi } else { name=`pwd |sed "s:^.*/::g"` } fi # mkb3.css fertigbasteln cat <<EOF > $MKBDIR/mkb3.css body { background-color: #a00000; color: #000000; } a:link { border-width:0px; color: #000000; line-height:150%; text-decoration:none; } a:focus { border-width:0px; color: #a00000; line-height:150%; text-decoration:none; } a:hover { border-width:0px; color: #000000; line-height:150%; text-decoration:none; } a:visited { border-width:0px; color: #300000; line-height:150%; text-decoration:none; } a:active { border-width:0px; color: #000000; line-height:150%; text-decoration:none; } table { border-collapse:collapse; border-width:3px; border-style:groove; border-color:#a00000; background-color: #906050; color: #000000; font-size:small; font-weight:bold; font-stretch:narrower; line-height:150%; table-layout:fixed; } img { border-collapse:collapse; border-width:3px; border-style:groove; border-color:#a00000; text-decoration:none; } EOF ####################################### # ein 2. css basteln für den Topframe cat <<EOF > $MKBDIR/mkb3top.css body { background-color: #a00000; color: #000000; } a:link { color: #000000; } a:visited { color: #202020; } table { background-color: #a00000; color: #000000; font-size:small; font-weight:bold; line-height:105%; } EOF ########################## # HTML-Header zusammenloeten, dabei den Seitentitel nicht vergessen cat <<EOF >index.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> <link rel="stylesheet" type="text/css" href="$MKBDIR/mkb3.css"> </head> <frameset cols="200px,*" frameborder="0" > <frame src="$MKBDIR/vorschau.html" name="Vorschau"> <frameset rows="20%,*" > <frame src="$MKBDIR/readmemkb3.html" name="readme"> <frame src="$MKBDIR/leer.html" name="Bild"> <noframes> Geht nicht? Klixdu hier: <a href="$MKBDIR/vorschau.html">Top</a> </noframes> </frameset> </frameset> </html> EOF # Ende index.html # Noch ne index.html - die ist für das mkb3-verzeichnis, damit da keiner # directory-index missnutzen kann, wird er ein Verzeichnis hoeher geschickt # HTML-Header zusammenloeten, dabei den Seitentitel nicht vergessen cat <<EOF >$MKBDIR/index.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <meta http-equiv="Refresh" content="5; URL=../index.html"> <title>$name</title> <link rel="stylesheet" type="text/css" href="mkb3.css"> </head> <body> <h2>Uppsi, falscher Planet!</h2> </body> </html> EOF # Ende weiterleitende indexhtml im .mkb3-Verzeichnis # Ein leerer Dummy-Frame als farbiger Platzhalter für die einzelnen Bilder cat <<EOF >$MKBDIR/leer.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> <link rel="stylesheet" type="text/css" href="mkb3.css"> </head> <body> </body> </html> EOF # Ende Dummyframe # Der Topframe, falls vorhanden, wird der Code einer readme.html # integriert cat <<EOF >$MKBDIR/readmemkb3.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> <link rel="stylesheet" type="text/css" href="mkb3top.css"> </head> <body> EOF # [ -e readme.html ] || echo -e "\nBilder nicht zum Verzehr geeignet!\n" >>$MKBDIR/readmemkb3.html # [ -e readme.html ] && cat readme.html >>$MKBDIR/readmemkb3.html # Eine eventuelle readme.html fix mit integrieren, sonst statt # dessen ein bischen Unsinn zusammenschreiben # und die Umlaute umbauen. if [ -e readme.html ] ; then cat readme.html >>$MKBDIR/readmemkb3.html else cat << EOF |sed "s/ä/\ä/g;s/Ä/\Ä/g;s/ö/\ö/g;s/Ö/\Ö/g;s/ü/\ü/g;s/Ü/\ü/g;s/ß/\ß/g;">>$MKBDIR/readmemkb3.html <h2>$name</h2> <h3>Diese Bilder sind nicht zum Verzehr geeignet!</h3> <br> EOF fi cat <<EOF >>$MKBDIR/readmemkb3.html </body> </html> EOF #Ende Topframe ############################################################ # Die Hauptarbeit ist die Vorschau # Hier wird der linke Frame fuer die Minibilder gebaut ############################################################ cat <<EOF >$MKBDIR/vorschau.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> <link rel="stylesheet" type="text/css" href="mkb3.css"> </head> <body> <table width="50%" border=3 summary="pictureoverview" > <tr><td> <a href="../../" target="_top">Zurück</a> </td></tr></table> <br> EOF ################################################### # Der Source dieses Scripts wird mitgeliefert # Include source in mkb3.html ################################################### cat <<EOF >$MKBDIR/mkb3.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> </head> <body style="background-color:#A00000; color:#000020;"> EOF echo -e '<table border=0 summary="source of this script" ><tr><td style="font-size:0.6em;"> >' >>$MKBDIR/mkb3.html sed 's/&/\&/g;;s/</\</g;s/>/\>/g;s/$/<br>/g' $0>>$MKBDIR/mkb3.html ;echo '</td></tr></table></body></html>' >>$MKBDIR/mkb3.html # Die Tabelle für die Bilder beginnen cat << EOF >>$MKBDIR/vorschau.html <table summary="pictures" border=3 width="175px"> <tr> EOF # Alle .jpg und alle .png als Miniversion und als mittelgrosse Version ablegen # und in der Tabelle darstellen und verlinken. SPALTE=0 for BILD in `ls *jpg *png *PNG *JPG 2>/dev/null | grep -v "^mini"` do if [ -e $BILD ] ; then { # Kommentare in Schleifen sind boese # convert gehoert zur imagemagick-Suite. [ -e $MKBDIR/mini.$BILD ] || { # wenn wir hier landen, gibt's noch keine Minibilder, also hat wohl noch keine # Verarbeitung stattgefunden # Ergo rotieren wir die Bilder in die richtige Richtung, einen # dicken Dank an Gerd Knorr, dessen exiftran die eigentliche Arbeit hier macht # Wichtig: PNG kann keine exiftags exiftran -a -i $BILD echo $BILD |grep -i "jpg$" && exif -t 0x013b --ifd="EXIF" --set-value="$EXIFTEXT" $BILD [ -e $BILD.modified.jpeg ] && mv $BILD.modified.jpeg $BILD convert -size 160x128 $BILD -resize 160x128 +profile "*" $MKBDIR/mini.$BILD } [ -e $MKBDIR/mini.640x480.$BILD ] || convert -quality 90 -size 640x480 $BILD -resize 640x480 +profile "*" $MKBDIR/mini.640x480.$BILD # Die Konvertierung ist jetzt durch, es werden die einzelnen Vorschaubilder # in den Vorschauframe eingebastelt. Hier gibt es noch deutlichen # Verbesserungsbedarf BILDNAME=$(echo $BILD|sed "s:.....................:& :g") echo '<td >'$BILDNAME'</td></tr><tr><td><a href="'mini.640x480.$BILD.html'" target="Bild"><img src="'mini.$BILD'" alt="'$MKBDIR/mini.640x480.$BILD'" ><br>'Max. 640x480'</a>'>>$MKBDIR/vorschau.html echo '<br><a href="'$BILD.html'" target="Bild">'Original'</a></td>' >>$MKBDIR/vorschau.html echo '<tr><td style="background-color:#a00000;"><a href="../../" target="_top">Zurück</a></td></tr>' >>$MKBDIR/vorschau.html # Die dummy-datei leer.html wird als Muster fuer die Ansichtsseite kopiert # Jedes Bild bekommt eine eigene .html mit einem Image-Tag # Das natuerlich nur, wenn die Datei noch nicht existiert, wir wollen rsync ja nicht aergern. [ -e $MKBDIR/mini.640x480.$BILD.html ] || { cat <<EOF >$MKBDIR/mini.640x480.$BILD.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> <link rel="stylesheet" type="text/css" href="mkb3.css"> </head> <body> EOF echo -e "<img src=\"mini.640x480.$BILD\" alt=\"*\">\n</body></html>\n" >> $MKBDIR/mini.640x480.$BILD.html } [ -e $MKBDIR/$BILD.html ] || { cat <<EOF >$MKBDIR/$BILD.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="n schraddeliges shellscript"> <meta name="author" content="strings /dev/urandom"> <title>$name</title> <link rel="stylesheet" type="text/css" href="mkb3.css"> </head> <body> EOF echo -e "<img src=\"../$BILD\" alt=\"*\" >\n</body></html>\n" >> $MKBDIR/$BILD.html } # Fuer Wahnsinnige besteht bei [ $SPALTE -eq 1 ] die Option, den # Vorschauframe mehrspaltig zu mache, das ist aber wirklich ekelig. # Einfach statt 1 die Zahl der gewuenschten Spalten hinkrakeln und danach # dann genuesslich die Biotonne auschlecken let SPALTE=$SPALTE+1 [ $SPALTE -eq 1 ] && { echo '<tr>' >> $MKBDIR/vorschau.html let SPALTE=0 } } fi done let SPALTE=0 echo -e '<td width="70%" style="background-color: #407040; color: #000000;">' >>$MKBDIR/vorschau.html echo "<a target="Bild" href=\"mkb3.html\">Dieses<br>Script<br>erzeugte<br>diese<br>Webseite</a>" >> $MKBDIR/vorschau.html echo -e '</td></tr></table>\n' >> $MKBDIR/vorschau.html # Ende Vorschauframe # Feierabend, Deckel drauf und gut. echo -e '</body>\n</html>' >>$MKBDIR/vorschau.html |