Übersicht und Dokumentation
In A-Parser wird die Template-Engine Template Toolkit zur Formatierung von Abfragen und Ergebnissen verwendet. Die Template-Engine ermöglicht es, die finale Zeichenfolge (z. B. Abfragen oder Ergebnisse) nach den im Template festgelegten Regeln zu bilden. Template Toolkit bietet eine Vielzahl von Möglichkeiten:
- Unterstützung von Bedingungen und Schleifen
- Unterstützung von gewöhnlichen Variablen (Skalaren), Arrays und Hashes (assoziativen Arrays)
- Unterstützung von Methoden für Variablen (Stringlänge, Suchen und Ersetzen, Arraygröße...)
- Unterstützung von Plugins und Filtern (Ausgabe und Formatierung von Datum und Uhrzeit, Generierung von HTML-Elementen...)
Beispiel für die Verwendung der Template-Engine
Offizielle Dokumentation zum Template Toolkit
Ein großer Vorteil dieser Template-Engine ist das Vorhandensein einer vollständigen Dokumentation in russischer und englischer Sprache. Unten sind Links zu den wichtigsten Abschnitten der Dokumentation aufgeführt:
- Einführung - allgemeine Informationen
- Syntax - Regeln und Stil beim Schreiben von Templates
- Direktiven - Bedingungen, Schleifen, Filter, Plugins und Makros
- Variablen - Zugriff auf und Aktualisierung von Werten von Variablen, Arrays und Hashes
- Virtuelle Methoden - vordefinierte Funktionen zur Verarbeitung von Variablen, Arrays und Hashes
- Plugins und Filter - erweiterte Funktionen der Template-Engine, A-Parser unterstützt die folgenden Plugins:
- Date - zur Generierung formatierter Datumszeichenfolgen
- Dumper - Ausgabe eines Dumps der Datenstruktur
- Format - zur Erstellung von Formatierungsfunktionen basierend auf der printf-Syntax
- HTML - zur Erstellung von HTML-Elementen und zum Maskieren von HTML-Code
- Filter - zum Erstellen und Verwenden von Filtern, die über das Laden von Plugins definiert und verfügbar sind
- Math - zur Verwendung beliebiger mathematischer Funktionen
- String - implementiert zusätzliche Methoden für die Arbeit mit Zeichenfolgen
- Table - zur Darstellung von Daten in Tabellenform
- URL - zum Erstellen von Links
- Wrap - zur Formatierung von Absätzen
- Iterator - zum Durchlaufen eines Datensatzes. Ein Iterator wird implizit automatisch durch die FOREACH-Direktive erstellt. Dieses Plugin ermöglicht es, einen Iterator explizit mit einem angegebenen Namen zu erstellen
Anwendungsbeispiele
Beispiele für häufig verwendete Templates
Beispiel für die Verwendung des Math-Plugins
Zufällige Auswahl einer bestimmten Anzahl von Links:
[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]
Beispiel für eine FOREACH-Schleife
Alle Links und ihre Positionen aus dem Array $serp ausgeben:
[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]
Beispiel für eine WHILE-Schleife
5 Anker aus dem Array $serp ausgeben, beginnend mit dem 3.:
[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]
Beispiel für eine Bedingung
Ausgabe bestimmter Daten in Abhängigkeit vom Wert einer Variablen:
[% IF p1.totalcount < 1000;
query _ " - wenig\n";
ELSIF p1.totalcount < 1000;
query _ " - normal\n";
ELSE;
query _ " - viel\n";
END %]