LinuxNetMag
Web Preprozessor: GTML
Archiv | Home
Inhalt
   
LinuxNetMag #4

  Software
 Aktuell
kurz vorgestellt
 HTML
Web Preprozessor
HTML-Editoren
 Internetradio
eigene Radiostation
Web-Jukebox IceDJ
 Spiele
Rennspiele
Entwicklung: XTux
 Astronomie
Sternenkarten
Flug durch Sonnensystem
Doppelsterne simulieren
  
 

Hardware

Kernel kompilieren
Soundkarte als Oszilloskop
Grafikkarten im Vergleich
  
 

Netzwerk

Web-Seiten überprüfen
Samba Teil II
Chat für Ihre Homepage
FTP-Server & Clients
Modem-sharing
Links
  
 Wissen
Der Bootprozeß
Gimp-Kurs Teil 1
Gimp-Kurs Teil 2
  
 

Sonstiges

Mailing-Liste
Gästebuch
Artikelliste
Unterstützen Sie uns !
zurück zur Hauptseite



Druckversion


  GTMLUmfaßt Ihre Homepage auch mehr als nur 3 Seiten?
Dann kennen Sie wahrscheinlich das Problem, alle Seiten im gleichen Design erscheinen zu lassen.
Ein Preprozessor nimmt Ihnen dabei unangenehme Arbeit ab!


Wenn Ihre Homepage aus mehreren Seiten mit einheitlichem Design besteht, dann hat man meistens Probleme, falls man etwas am Design ändern möchte. Denn dann muß man diese Änderung an allen Seiten vornehmen.
Gerade bei größeren Projekten überlegt man sich dann mehrmals, ob die Änderung am Design wirklich notwendig ist. Wenn doch, dann hat man Pech gehabt.

Die Lösung: GTML

Mit GTML kann man solche Probleme geschickt umgehen, indem man sich nur eine Seite als eine Art Gerüst aufbaut, und in dieses Gerüst dann die jeweiligen Texte einbindet. Will man nun etwas am Design ändern, so gibt man diese Änderung nur beim Gerüst ein, GTML ändert daraufhin alle Seiten entsprechend.

Will man beispielsweise eine Seite haben, die folgendermaßen aufgeteilt ist,

Titelleiste

Text

Bodenleiste

dann generiert man wie gewohnt eine HTML-Seite, benennt Sie aber mit der Endung ".gtml" statt ".html"

Beispieldatei.gtml
   
<center>
<table>
  <tr>
    <td>Titelleiste</td>
  </tr>
  <tr>
    <td>Text</td>
  </tr>
  <tr>
    <td>Bodenleiste</td>
  </tr>
</table>
</center>

Anstatt den Text direkt hinzuschreiben wird nun eine beliebige Datei an dieser Stelle eingefügt.
Dies geschieht mittels des Makros:

 #include "textdatei.txt"
Es ist dabei darauf zu achten, daß dieses Makro direkt am Zeilenanfang steht. Leider interpretiert GTML das Makro nicht, wenn Leerzeichen davor sind. Dies ist dann ärgerlich, wenn man der Übersicht halber die Zeile einrücken will.
Um nun die HTML-Datei zu erzeugen, reicht ein
>> gtml Beispieldatei.gtml
(vorausgesetzt das Programm "gtml" befindet sich im $PATH).

von Variablen, Bedingungen und Funktionen

GTML erlaubt es auch, innerhalb eines Textes Variablen zu definieren. Der Befehl

 #define MAUER rot
Ordnet der Variable "MAUER" den Wert "rot" zu.
Nützlich ist dies z.B., wenn Sie in einem längeren Dokument nicht jedesmal Ihre e-Mail Adresse ausschreiben möchten. Dann definiert man einmal am Anfang des Textes die Variable "EMAIL" und schreibt dann im Text statt der eigentlichen Adresse nur:
 <<EMAIL>>
GTML ersetzt dies dann mit der e-Mail Adresse.

Es ist auch möglich, abhängig von dem Wert einer Variablen, bestimmte Texte einzufügen.

 #if <<EMAIL>> == [email protected]
 #include "NurFürMich.txt"
 #endif
In diesem Beispiel wird nur dann der Text "NurFürMich.txt" eingefügt, wenn die Variable "EMAIL" den Wert "[email protected]" hat. Ansonsten wird der Text nicht eingefügt.
Außerdem existieren noch weitere Versionen von Vergleichen, wie z.B. "!=" zur Überprüfung auf Ungleichheit. Auch andere verbreitete Bedingungen wie #elsif, #ifdef usw. werden erkannt.
GTML soll nach Anleitung auch verschachtelte Bedingungsschleifen akzeptieren. In der Praxis klappte dies aber nicht immer. Dieses Problem umgeht man, indem die innere Bedingung in eine weitere Textdatei exportiert und per #include-Befehl eingebunden wird. Dies steigert auch gleichzeitig die Übersichtlichkeit.

Besonders einfach ist es, sich seine eigenen Funktionen zu definieren. Ein kurzes

 #define Home(name,url) Die Homepage von name befindet sich unter <a href="url>url</a>
am Anfang der Datei bewirkt nun, daß der folgende Abschnitt
 <<Home(Mr.X,http://www.linuxnetmag.de)>>
innerhalb des Dokumentes vom Preprozessor durch

Die Homepage von Mr.X befindet sich unter http://www.linuxnetmag.de

ersetzt wird.

Projekte verwalten

Bisher haben wir nur erklärt, wie man die Funktionen von GTML nutzt, aber noch nicht das eigentliche Ziel, wie man eine Homepage mit mehreren Seiten verwalten kann.
Für derartige Arbeiten legt man sich eine sog. Projek-Datei an. Diese zeichnet sich durch die Endung ".gtp" aus. In ihr werden alle Dateien aufgeführt, die vom Preprozessor behandelt werden sollen. Zusätzlich kann man in dieser Datei in bekannter Weise Variablen und Funktionen definieren, nur daß hier kein vorgestelltes "#" benötigt wird. Es empfiehlt sich der Übersicht halber, alle Variablen und Funktionen nicht in den ".gtml"-Seiten zu definieren, sondern in der Projekt-Datei.
Sollen nun aus einer ".gtml"-Datei mehrere einheitlich aussehende HTML-Seiten generiert werden, die allerdings alle verschiedene Texte enthalten, so kann man seine Projekt-Datei folgendermaßen aufbauen:

Projektdatei: projekt.gtp
define home(name,url) Homepage von name unter <a href="url>url</a>
define EMAIL [email protected]

//So sieht ein Kommentar aus
define TEXT ./Einfuegetext1.txt
define TITLE Test-Seite
define KEYWORDS Begriffe, für, Suchmaschinen
define EXTENSION -test1.html
./issue4/Datei.gtml

define TEXT ./Einfuegetext2.txt
define TITLE Test-Seite 2
define KEYWORDS weitere, Begriffe, hier
define EXTENSION -test2.html
./issue4/Datei.gtml

Die Variable Extension gibt an, welcher Text an den Dateinamen angehängt werden soll, wenn bei der Datei die Endung gtml nicht nur in html umgewandelt werden soll.
Stattdessen wird bei dem ersten Beispiel aus "Datei.gtml" die Datei "Datei-test1.html". In "Datei.gtml" muß nun statt des gewünschten Textes ein Eintrag in der Form
 #include "<<TEXT>>"
stehen. Damit wird je nach der Variablen "TEXT" definierte Text eingefügt.
In den GTML-Seiten kann nun auch statt des Seitentitels die Variable <<TITLE>> benutzt werden. Ähnliches wird im Beispiel auch für die Benutzung von Suchbegriffen für Suchmaschinen benutzt. In der Projekt-Datei hat mein einen besseren Überblick über alle zu erzeugenden HTML-Seiten und kann dort die Einträge besser editieren, als in jeder Seite einzelnd.
Durch den Befehl
>> gtml Projekt.gtp
werden die HTML-Seiten dann generiert.

Mit diesem kleinen Exkurs in GTML sind aber noch lange nicht alle Möglichkeiten dieses Programms ausgeschöpft. Besonders interessant ist die Fähigkeit, Perl-Programme vom Preprozessor ausführen zu lassen und damit noch differenzierter HTML-Seiten zu generieren. Somit ist es z.B. möglich, je nach Wochentag, eine andere Hintergrundfarbe für seine Seiten zu wählen. Aber es gibt auch sinvollere Anwendungsmöglichkeiten.

Link
    Homepage GTML: http://www.lifl.fr/~beaufils/gtml/

 


Platz für Kommentare & Fragen:
(selbst eintragen)

 

Weitere Ausgaben Linux NetMag
[ #1 | #2 | #3 | #4 | Main ]