HTML - Vorlagen: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
Alle Dokumente, die der OrgaMon erzeugt sind .html Dateien. Diese werden nicht aus eigener Kraft, sondern grundsätzlich anhand einer .html Vorlage "belichtet". Dabei wird die Vorlage aus dem Verzeichnis ".\HTML Vorlagen" geladen und Platzhalter durch einen echten Inhalt ersetzt. | |||
Variable, mehrzeilige Ausgaben werden durch "BLOCKS" gelöst: In der Vorlage markiert man einen Abschnitt als Block der beim Laden entfernt und in einen Zwischenspeicher verlagert wird. "Braucht" die Ausbelichtung diesen Block wird er an einer "insert"-Marke eingefügt und ausbelichtet. | |||
Bei mehrseitigen Dokumenten muss man 4 Typen von Seiten vorbereiten: | |||
* PAGE_SINGLE: Die "erste" Seite für den Fall, dass alles auf einer Seite Platz hat | |||
* PAGE_FIRST: Die "erste" Seite für den Fall, dass ein mehrseitiges Dokument ensteht | |||
* PAGE_NEXT | |||
* PAGE_LAST | |||
== Einseitige Vorlage == | == Einseitige Vorlage == | ||
Zeile 78: | Zeile 87: | ||
</code> | </code> | ||
== | === MAXLINES === | ||
==== COSUMER - Begriff ==== | |||
* Consumer sind ~Platzhalter~, die im Falle einer Ausbelichtung Platz benötigen | |||
* "!" sind Nicht-Consumer, die nicht auf eine Seite ausbelichtet werden dürfen | |||
== Implementierung == | == Implementierung == | ||
Version vom 23. Januar 2016, 11:49 Uhr
Alle Dokumente, die der OrgaMon erzeugt sind .html Dateien. Diese werden nicht aus eigener Kraft, sondern grundsätzlich anhand einer .html Vorlage "belichtet". Dabei wird die Vorlage aus dem Verzeichnis ".\HTML Vorlagen" geladen und Platzhalter durch einen echten Inhalt ersetzt. Variable, mehrzeilige Ausgaben werden durch "BLOCKS" gelöst: In der Vorlage markiert man einen Abschnitt als Block der beim Laden entfernt und in einen Zwischenspeicher verlagert wird. "Braucht" die Ausbelichtung diesen Block wird er an einer "insert"-Marke eingefügt und ausbelichtet. Bei mehrseitigen Dokumenten muss man 4 Typen von Seiten vorbereiten:
- PAGE_SINGLE: Die "erste" Seite für den Fall, dass alles auf einer Seite Platz hat
- PAGE_FIRST: Die "erste" Seite für den Fall, dass ein mehrseitiges Dokument ensteht
- PAGE_NEXT
- PAGE_LAST
Einseitige Vorlage
<html>
<titel></titel>
Hallo Welt!
Heute ist der ~DATUM~!
</html>
Blocks
<|-- BEGIN ARTIKEL EVEN -->
~ArtNo~
~AusgabeArt~~ArtTxt~
~Menge~
~Wert~
~Percent~
~Anteil~
<|-- END ARTIKEL EVEN -->
<|-- BEGIN ARTIKEL ODD -->
~ArtNo~
~AusgabeArt~~ArtTxt~
~Menge~
~Wert~
~Percent~
~Anteil~
<|-- END ARTIKEL ODD -->
<|-- INSERT ARTIKEL -->
Mehrseitige Vorlage
<html>
<HEAD>
<title></title>
<META HTTP-EQUIV="Pragma" content="no-cache">
<META HTTP-EQUIV="Cache-Control" content="no-cache, must-revalidate">
<META HTTP-EQUIV="Expires" content="0">
<STYLE TYPE="text/css">
<|--
P.breakhere {page-break-before: always}
-->
</STYLE>
</HEAD>
<body bgcolor="#ffffff" text="#000000" link="#cc0000" vlink="#999999" alink="#ffcc00">
<|-- BEGIN PAGE_SINGLE -->
<|-- SET MAXLINES 16 ArtTxt -->
...
<|-- END PAGE_SINGLE -->
<|-- BEGIN PAGE_FIRST -->
<|-- SET MAXLINES 18 ArtTxt -->
<|-- END PAGE_FIRST -->
<|-- END PAGE_NEXT -->
<|-- BEGIN PAGE_LAST -->
<|-- SET MAXLINES 18 ArtTxt,MW -->
<|-- END PAGE_LAST -->
<|-- INSERT PAGE -->
</body>
</html>
MAXLINES
COSUMER - Begriff
- Consumer sind ~Platzhalter~, die im Falle einer Ausbelichtung Platz benötigen
- "!" sind Nicht-Consumer, die nicht auf eine Seite ausbelichtet werden dürfen
Implementierung
// konstante Daten, die auf jeder Seite gleich sind DatenSammlerGlobal: TStringList; //
// lokale Block-Daten, die wechseln DatenSammlerLokal: TStringList; //
Kommandos
if (pos('local', Command) > 0) then if (pos(cPageBreakHerePossible, Command) > 0) then if (pos('save&delete', Command) > 0) then if (pos('set', Command) > 0) then if (pos('load', Command) > 0) then if (pos('write', Command) > 0) then if (pos('save', Command) > 0) then if (pos('clear', Command) > 0) then if (pos('delete', Command) > 0) then if (pos('dereference', Command) > 0) then
Blocks
cHTML_BeginBlock = '\<\!-- BEGIN ';
cHTML_EndBlock = '