Overzicht en documentatie
In A-Parser wordt de Template Toolkit-sjabloon-engine gebruikt voor het formatteren van query's en resultaten. De sjabloon-engine maakt het mogelijk om de uiteindelijke string (bijvoorbeeld query's of resultaten) te vormen volgens de regels die in het sjabloon zijn gedefinieerd. Template Toolkit biedt tal van mogelijkheden:
- Ondersteuning voor voorwaarden en lussen
- Ondersteuning voor gewone variabelen (scalars), arrays en hashes (associatieve arrays)
- Ondersteuning voor methoden voor variabelen (stringlengte, zoeken en vervangen, arraygrootte...)
- Ondersteuning voor plug-ins en filters (weergave en formattering van datum en tijd, genereren van HTML-elementen...)
Voorbeeld van het gebruik van de sjabloon-engine
Officiële documentatie voor Template Toolkit
Een groot voordeel van deze sjabloon-engine is de beschikbaarheid van volledige documentatie in het Russisch en Engels. Hieronder staan links naar de belangrijkste secties van de documentatie:
- Inleiding - algemene informatie
- Syntaxis - regels en stijl voor het schrijven van sjablonen
- Directieven - voorwaarden, lussen, filters, plug-ins en macro's
- Variabelen - toegang tot en bijwerken van waarden van variabelen, arrays en hashes
- Virtuele methoden - vooraf ingestelde functies voor het verwerken van variabelen, arrays en hashes
- Plug-ins en Filters - uitgebreide mogelijkheden van de sjabloon-engine, A-Parser ondersteunt de volgende plug-ins:
- Date - voor het genereren van geformatteerde datumstrings
- Dumper - uitvoer van een dump van de datastructuur
- Format - voor het maken van formatteringsfuncties op basis van de printf-syntaxis
- HTML - voor het maken van HTML-elementen en het escapen van HTML-code
- Filter - voor het maken en gebruiken van filters die worden gedefinieerd en beschikbaar zijn via het laden van plug-ins
- Math - voor het gebruik van alle wiskundige functies
- String - implementeert extra methoden voor het werken met strings
- Table - voor het weergeven van gegevens in tabelvorm
- URL - voor het bouwen van links
- Wrap - voor het formatteren van alinea's
- Iterator - voor het doorlopen van een dataset. Een iterator wordt impliciet automatisch aangemaakt door de FOREACH-directieve. Deze plug-in maakt het mogelijk om expliciet een iterator met een opgegeven naam aan te maken
Voorbeelden van gebruik
Voorbeelden van veelgebruikte sjablonen
Voorbeeld van het gebruik van de Math plug-in
Willekeurig een opgegeven aantal links selecteren:
[% limit = 5;
USE Math;
FOREACH i IN [1..5];
n = Math.rand(intlinks.size);
intlinks.$n.link _ "\n";
END %]
Voorbeeld van een FOREACH-lus
Alle links en hun posities uit de array $serp weergeven:
[% FOREACH item IN p1.serp;
loop.count _ ' - ' _ item.link _ "\n";
END %]
Voorbeeld van een WHILE-lus
5 ankers uit de array $serp weergeven, beginnend bij de 3e:
[% n = 2;
WHILE n < 7;
p1.serp.${n}.anchor _ "\n";
n = n + 1;
END %]
Voorbeeld van een voorwaarde
Uitvoer van specifieke gegevens afhankelijk van de waarde van een variabele:
[% IF p1.totalcount < 1000;
query _ " - weinig\n";
ELSIF p1.totalcount < 1000;
query _ " - normaal\n";
ELSE;
query _ " - veel\n";
END %]