echo "<"\!"DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> Startseite für das Projekt</title> </head> <body> <p style="text-align:center">Mein Name<br>Meine Straße<br>Mein Wohnort<br><br></p></body> </html>" > ~/Bla/Web/index.htm |
Es sollen natürlich weitere Webseiten hinzugefügt werden. Dazu wird die Anzahl der htm-Dateien in dem Ordner ~/Bla/Web/seiten bestimmt |
szANZ=$(find ~/Bla/Web/seiten/ -maxdepth 1 -type f -name "page*.htm" | wc -l); echo $szANZ |
1 Die Anzahl der htm-Dateien, sowie plus 1 für die nächste neue Datei, sowie plus 2 für die übernächste Datei wird dann in dreistellige Zahlen verwandelt aALT=$(echo "scale=3; $szANZ/1000" | bc -ql | sed 's|\.||g'); echo $aALT 001 aNEU=$(echo "scale=3; ($szANZ+1)/1000" | bc -ql | sed 's|\.||g'); echo $aNEU 002 aNEUU=$(echo "scale=3; ($szANZ+2)/1000" | bc -ql | sed 's|\.||g'); echo $aNEUU 003 Sofern das Projekt ganz neu beginnt und noch keine htm-Datei vorhanden ist, also szANZ den Wert 0 hat, soll xmessage eine Info ausgeben daß es nötig ist eine neue htm-Datei zu erzeugen. Außerdem soll xmessage eine Info ausgeben welche Datei gerade bearbeitet wird. Dazu müssen die folgenden Zeilen vor dem Aufruf von xmessage eingefügt werden: |
szANZ=$(find ~/Bla/Web/seiten/ -maxdepth 1
-type f -name "page*.htm" | wc -l) aALT=$(echo "scale=3; $szANZ/1000" | bc -ql | sed 's|\.||g') aNEU=$(echo "scale=3; ($szANZ+1)/1000" | bc -ql | sed 's|\.||g') aNEUU=$(echo "scale=3; ($szANZ+2)/1000" | bc -ql | sed 's|\.||g') if [ $szANZ -eq 0 ]; then xMES=$(echo "Erst eine neue Seite erstellen") else xMES=$(echo "Text oder Bild in page$aALT.htm einfuegen") fi |
Dann wird xmessage angepasst
und durch eine weitere Schaltfläche ergänzt: neue Seite |
xmessage -fn '-*-*-*-r-*--25-0-0-0-p-*-iso8859-1' -title "Web-Seiten-Projekt" -center -buttons "Text links,Text mittig,Bild links,Bild mittig,neue Seite,Fertig" "$xMES" |
Damit wird der Rückgabewert
von neue Seite zu 105 und von Fertig zu 106, das muß geändert werden. Dann müssen auch alle Zeichenfolgen page001 durch page$aALT ersetzt werden. In der while-Schleife nach den Zeilen mit xmessage.... wird folgender Text eingefügt, der eine neue Datei erstellt mit einer Hintergrundfarbe (zenity Color-Fenster mit Übersetzung auf Hex-Code) und Angabe des Zeichensatzes und eines Links zu index.htm - und eines Links zur kommenden Seite, die noch nicht existiert - sowie einem Eintrag in der index.htm |
if [ $szR -eq 105 ]; then szCol=$(zenity --color-selection --show-palette ) szFb=$( printf \#%02X%02X%02X $(echo $szCol | sed 's/rgb(//g' | sed 's/)//g' | sed 's/,/ /g') ) echo "<"\!"DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> Projekt page$aNEU </title> </head> <body style="background-color:$szFb"> <p style="text-align:left"><a href="../index.htm"><b>Übersicht</b></a> <br> <a href="page$aNEUU.htm"><b>Weiter zu page$aNEUU</b></a></p> </body> </html>" > ~/Bla/Web/seiten/page$aNEU.htm niD=$(echo "<p style="text-align:center"><a href="seiten/page$aNEU.htm"><b>Projekt page$aNEU</b></a> <br>") niDD=$(cat ~/Bla/Web/index.htm | sed "s|</body>|$niD&|g") echo $niDD > ~/Bla/Web/index.htm |
Das nachfolgende if [ $szR -eq 101 ] muß dann geändert werden zu elif [ $szR -eq 101 ] Es hat sich gezeigt, daß das Drücken auf Abbrechen beim Datei-Auswahlfenster einen Fehler beim Kopieren-Befehl cp erzeugt. Der Rückgabewert beim Abbrechen $? ist dann gleich 1. Daher ist an dieser Stelle im Script noch eine Ergänzung notwendig. if [ $? -eq 1 ]; then exit else cp "$szB" ~/Bla/Web/bilder und .... die weiteren Kommandos fi Und auch bei dem Farb-Auswahlfenster ist eine ähnliche Ergänzung vorteilhaft. Wenn noch keine erste Webseite erzeugt wurde, so führt das Klicken auf Schaltflächen mit Texteinfügung oder Bildeinfügung zu einem Durcheinander der Zählung (vielleicht passiert dieses Klicken doch aus Versehen). Daher wird auch hier eine Sicherheits-Abfrage hinzugefügt if [ $szANZ -eq 0 ]; then continue fi Mit continue springt man wieder an den Anfang der Schleife. Nun kann man das Script neu schreiben (alten Text löschen) |
nano ~/Bla/scWEB.sh |
Eingabe in den Editor: |
#!/bin/bash szR=101 while [ $szR -ne 106 ] do szANZ=$(find ~/Bla/Web/seiten/ -maxdepth 1 -type f -name "page*.htm" | wc -l) aALT=$(echo "scale=3; $szANZ/1000" | bc -ql | sed 's|\.||g') aNEU=$(echo "scale=3; ($szANZ+1)/1000" | bc -ql | sed 's|\.||g') aNEUU=$(echo "scale=3; ($szANZ+2)/1000" | bc -ql | sed 's|\.||g') if [ $szANZ -eq 0 ]; then xMES=$(echo "Erst eine neue Seite erstellen") else xMES=$(echo "Text oder Bild in page$aALT.htm einfuegen") fi xmessage -fn '-*-*-*-r-*--25-0-0-0-p-*-iso8859-1' -title "Web-Seiten-Projekt" -center -buttons "Text links,Text mittig,Bild links,Bild mittig,neue Seite,Fertig" "$xMES" szR=$? if [ $szR -eq 105 ]; then szCol=$(zenity --color-selection --show-palette ) if [ $? -eq 1 ]; then exit else szFb=$( printf \#%02X%02X%02X $(echo $szCol | sed 's/rgb(//g' | sed 's/)//g' | sed 's/,/ /g') ) echo "<"\!"DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> Projekt page$aNEU </title> </head> <body style="background-color:$szFb"> <p style="text-align:left"><a href="../index.htm"><b>Übersicht</b></a><br> <a href="page$aNEUU.htm"><b>Weiter zu page$aNEUU</b></a> </p> </body> </html>" > ~/Bla/Web/seiten/page$aNEU.htm niD=$(echo "<p style="text-align:center"><a href="seiten/page$aNEU.htm"><b>Projekt page$aNEU</b></a> <br></p>") niDD=$(cat ~/Bla/Web/index.htm | sed "s|</body>|$niD&|g") echo $niDD > ~/Bla/Web/index.htm fi elif [ $szR -eq 101 ]; then if [ $szANZ -eq 0 ]; then continue fi szTR=$(zenity --entry --ok-label "Einfügen" --title "Texteingabe" --text " Das Zeichen | \n darf nicht vorkommen" --entry-text "gewünschter Text" ) nTT=$(cat ~/Bla/Web/seiten/page$aALT.htm | sed "s|</body>|<p style="text-align:left">$szTR</p>&|g" | sed 's|ü|\ü|g' | sed 's|ä|\ä|g' | sed 's|ö|\ö|g' | sed 's|Ü|\Ü|g' | sed 's|Ä|\Ä|g' | sed 's|Ö|\Ö|g' | sed 's|ß|\ß|g') echo $nTT > ~/Bla/Web/seiten/page$aALT.htm elif [ $szR -eq 102 ]; then if [ $szANZ -eq 0 ]; then continue fi szTR=$(zenity --entry --ok-label "Einfügen" --title "Texteingabe" --text " Das Zeichen | \n darf nicht vorkommen" --entry-text "gewünschter Text" ) nTT=$(cat ~/Bla/Web/seiten/page$aALT.htm | sed "s|</body>|<p style="text-align:center">$szTR</p>&|g" | sed 's|ü|\ü|g' | sed 's|ä|\ä|g' | sed 's|ö|\ö|g' | sed 's|Ü|\Ü|g' | sed 's|Ä|\Ä|g' | sed 's|Ö|\Ö|g' | sed 's|ß|\ß|g') echo $nTT > ~/Bla/Web/seiten/page$aALT.htm elif [ $szR -eq 103 ]; then if [ $szANZ -eq 0 ]; then continue fi szB=$(zenity --file-selection --file-filter='*.gif *.jpg' ) if [ $? -eq 1 ]; then exit else cp "$szB" ~/Bla/Web/bilder szBN=$(echo ${szB##*/}) szBREIT=$(convert "$szB" -flatten -format '%w' info: ) szHOCH=$(convert "$szB" -flatten -format '%h' info: ) nT=$(echo "<p style="text-align:left"><img border="0" src="../bilder/$szBN" width="$szBREIT" height="$szHOCH"></p>") nTT=$(cat ~/Bla/Web/seiten/page$aALT.htm | sed "s|</body>|$nT&|g") echo $nTT > ~/Bla/Web/seiten/page$aALT.htm fi elif [ $szR -eq 104 ]; then if [ $szANZ -eq 0 ]; then continue fi szB=$(zenity --file-selection --file-filter='*.gif *.jpg' ) if [ $? -eq 1 ]; then exit else cp "$szB" ~/Bla/Web/bilder szBN=$(echo ${szB##*/}) szBREIT=$(convert "$szB" -flatten -format '%w' info: ) szHOCH=$(convert "$szB" -flatten -format '%h' info: ) nT=$(echo "<p style="text-align:center"><img border="0" src="../bilder/$szBN" width="$szBREIT" height="$szHOCH"></p>") nTT=$(cat ~/Bla/Web/seiten/page$aALT.htm | sed "s|</body>|$nT&|g") echo $nTT > ~/Bla/Web/seiten/page$aALT.htm fi else exit fi done |
Falls man die alte Datei ~/Bla/scWEB.sh komplett gelöscht hat und wieder neu erstellt hat, muß man diese Datei wieder ausführbar machen (hat man nur den alten Text durch den neuen ersetzt, braucht man das natürlich nicht): |
chmod +x ~/Bla/scWEB.sh |
Damit man ganz neu anfangen
kann gibt man dem Ordner Web einen anderen Namen, vielleicht Web-Datum.
Dann erstellt man die Ordnerstruktur von Ordner Web neu mit mkdir -p ~/Bla/Web/{seiten,bilder} und erstellt die index.htm neu so wie auf dieser Seite oben. Nun erzeugt man noch ein kleines Bild für das Programm: |
convert -size 48x48 xc:red \( -size 40x40 xc:yellow \( -size 30x30 -background green -gravity center -fill black -font FreeSerif -pointsize 36 label:W \) -gravity center -composite \) -gravity center -composite ~/Bla/CW.png |
Mit Rechtsklick auf die Datei scWEB.sh
wählt man wieder Eigenschaften. Dann vergibt man einen Namen, hier etwa WEB-Projekt Für das Icon wählt man die Datei CW.png aus dem Ordner Bla, dann schließt man das Eigenschaften-Menü. Rechtsklick auf und Ausführen ergibt: |
Man muß also eine erste
Seite erstellen durch Klicken auf die Schaltfläche neue Seite Man wählt eine Hintergrundfarbe aus und gelangt wieder zum xmessage-Fenster. Die Zeichen | und & dürfen bei der Text-Einfügung nicht verwendet werden da es sonst zu einem Konflikt mit sed kommt. Man könnte nachträglich die Webseite mit einem Texteditor, z.B. gedit, öffnen und diese Zeichen einfügen. Man kann immer nur die zuletzt erzeugte htm-Datei bearbeiten. Die zuletzt erzeugte htm-Datei hat einen Link zu einer noch nicht erstellten weiteren htm-Datei - evtl. mit gedit öffnen und den Link löschen. Es ist eben nur ein kleines Programm. |