#!/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='-----------------------------------------------------------------' # 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 < $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 < $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 <index.html $name Geht nicht? Klixdu hier: <a href="$MKBDIR/vorschau.html">Top</a> 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 <$MKBDIR/index.html $name

Uppsi, falscher Planet!

EOF # Ende weiterleitende indexhtml im .mkb3-Verzeichnis # Ein leerer Dummy-Frame als farbiger Platzhalter für die einzelnen Bilder cat <$MKBDIR/leer.html $name EOF # Ende Dummyframe # Der Topframe, falls vorhanden, wird der Code einer readme.html # integriert cat <$MKBDIR/readmemkb3.html $name 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

$name

Diese Bilder sind nicht zum Verzehr geeignet!


EOF fi cat <>$MKBDIR/readmemkb3.html EOF #Ende Topframe ############################################################ # Die Hauptarbeit ist die Vorschau # Hier wird der linke Frame fuer die Minibilder gebaut ############################################################ cat <$MKBDIR/vorschau.html $name
Zurück

EOF ################################################### # Der Source dieses Scripts wird mitgeliefert # Include source in mkb3.html ################################################### cat <$MKBDIR/mkb3.html $name EOF echo -e '
>' >>$MKBDIR/mkb3.html sed 's/&/\&/g;;s//\>/g;s/$/
/g' $0>>$MKBDIR/mkb3.html ;echo '
' >>$MKBDIR/mkb3.html # Die Tabelle für die Bilder beginnen cat << EOF >>$MKBDIR/vorschau.html 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 '' >>$MKBDIR/vorschau.html echo '' >>$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 <$MKBDIR/mini.640x480.$BILD.html $name EOF echo -e "\"*\"\n\n" >> $MKBDIR/mini.640x480.$BILD.html } [ -e $MKBDIR/$BILD.html ] || { cat <$MKBDIR/$BILD.html $name EOF echo -e "\"*\"\n\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 '' >> $MKBDIR/vorschau.html let SPALTE=0 } } fi done let SPALTE=0 echo -e '
'$BILDNAME'
'$MKBDIR/mini.640x480.$BILD'
'Max. 640x480'
'>>$MKBDIR/vorschau.html echo '
'Original'
Zurück
' >>$MKBDIR/vorschau.html echo "Dieses
Script
erzeugte
diese
Webseite
" >> $MKBDIR/vorschau.html echo -e '
\n' >> $MKBDIR/vorschau.html # Ende Vorschauframe # Feierabend, Deckel drauf und gut. echo -e '\n' >>$MKBDIR/vorschau.html