|
|
Content-Dateien definieren Makrowerte.
Hier ein Beispiel einer Content-Datei:
[@TITEL]:
Willkommen bei Webgenz
[@]
[@BODY_INHALT]:
Willkommen bei Webgenz, DEM Tool zur Erstellung von Websites. Diese Software wurde entwickelt, um Websites effizienter als jemals zuvor zu erstellen und zu warten.
[@]
Hinweise:
- Der Makrowert befindet sich zwischen einem Start- und einem Ende-Tag. Das Start-Tag entspricht dabei defaultmäßig dem von einem ":" gefolgten Makro-Tag. Das Ende-Tag, das in einer eigenen Zeile stehen muss, ist im Standard [@]. Die in den Makro-Tags verwendeten Sonderzeichen können im "Options"-Menü geändert werden.
- In einem Makro-Wert können selbst wieder Makro-Tags auftreten. Mit anderen Worten: Makro-Tags können verschachtelt werden. Die Ersetzung der Makro-Tags wird auch dann wie erwartet erfolgen. Die Verschachtelungstiefe muss im "Options"-Menü eingestellt werden.
- WICHTIG Um die Formatierung des erzeugten HTML-Dokuments zu erhalten, wird jeder Zeile eines mehrzeiligen Makrowertes der Text (zumeist "nur" Leerzeichen) vorangestellt, der links vom Makro-Tag in der Template-Datei steht. Falls es sich dabei um HTML-Code handelt, sollte der Makrowert einzeilig sein, es sei denn, es ist beabsichtigt, jeder Zeile des Makrowertes diesen HTML-Code voranzustellen. Dementsprechend ist es gewöhnlich das Beste, ein Makro-Tag in eine eigene Zeile der Template-Datei zu platzieren, wenn man nicht sicher ist, dass der Makrowert nur einzeilig ist (Lesen sie hierzu mehr).
Weiterführende Themen:
- "Vererbung" ist ein Kernkonzept von Webgenz. Wenn Webgenz ein Makro-Tag mit einem Makrowert ersetzen soll, prüft es zuerst, ob das Makro in der "unmittelbaren" (lokalen) Content-Datei definiert ist. Wenn dies nicht der Fall ist, durchsucht Webgenz anschließend die Content-Datei-Hierarchie nach der Makrodefinition.
- Es ist möglich, Makros "unterzuordnen". So könnte z.B. eine globale Content-Datei ein Makro namens [@JAVA_SCRIPT] mit einem JavaScript-Codeblock enthalten, der für jedes Dokument innerhalb des Projekts verfügbar sein soll. Eine lokale Content-Datei könnte nun ihr eigenes Makro [@JAVA_SCRIPT] wie folgt definieren:
[@JAVA_SCRIPT]:
Beliebiger JavaScript-Code
[@^JAVA_SCRIPT]
[@]
Die letzte Zeile dieses Makrowerts ist ein Makro-Tag, das auf ein Makro desselben Namens referenziert, jedoch weist das "^" Webgenz an, bei der übergeordneten Content-Datei mit der Suche nach dem Makrowert zu beginnen.
- Parameter können an Makrowerte übergeben werden. Ein Makro, das Parameter entgegennimmt, wird folgendermaßen definiert:
[@MEIN_MAKRO(@a:1)(@b:2)(@c)]:
Dieses Makro liefert die Werte (@a), (@b) und (@c) zurück.
Die Parameter "a" und "b" besitzen Vorgabewerte, der Parameter "c" nicht.
[@]
Dieses Makro definiert drei Parameter: "a", "b", und "c". Die Parameter "a" und "b" sind mit den Vorgabewerten "1" und "2" vorbelegt.
Das Makro kann aus einer Template-Datei auf die folgenden Weisen aufgerufen werden:
[@MEIN_MAKRO] - Bei Aufruf ohne Parameter werden die Parameter-Vorgabewerte verwendet.
[@MEIN_MAKRO(@a:Ja)(@b:Nein)(@c:Vielleicht)] - Bei Aufruf mit Parametern ersetzen die an das Makro übergebenen Werte die Parameterwerte im Makro.
[@MEIN_MAKRO(@c:Vielleicht)(@b:Nein)(@a:Ja)] - Die Reihenfolge der Parameter ist irrelevant, da Parameter durch den Namen und nicht durch die Position referenziert werden.
[@MEIN_MAKRO(@a:Ja)] - Parameter sind optional. Wenn für einen Parameter kein Wert übergeben wird, wird der Vorgabewert verwendet. Wenn kein Vorgabewert existiert, wird der Parameter durch Leerzeichen ersetzt.
|