Skip navigation links
Automatiseer uw tekstdocumenten expressief en gemakkelijk met TExpressive!
Menu
TExpressive
Automatiseer uw tekstdocumenten expressief en gemakkelijk met TExpressive!

Sjabloongebruik

TExpressive kan op allerlei moeilijkheidsgraden worden gebruikt, van simpele voeg-de-gegevens-hier-in sjablonen tot complexe tekst en gegevens verwerkende applicaties.  Hier started we met de beginselen van het werken met TExpressive sjablonen.

Wanneer u met TExpressive werkt start u met een sjabloon.  Het sjabloon zelf is niets meer dan een tekstueel bestand met enkele stukken "script" erin verwerkt.  Deze scripts bepalen waar TExpressive sommige acties op uw sjabloon uitvoert om zo het uiteindelijke resultaatbestand te genereren.  Scripts zijn het dynamische gedeelte van uw sjablonen.  In scrips neemt u "functies" op die elk een bepaalde functie vervullen.  Scripts worden als volgt opgeschreven:

<#FunctieNaam Argument:"Waarde"#>

waarbij <# het script start, "FunctieNaam" voor de naam staat van de te gebruiken functie, "Argument" voor de naam van een argument staat dat informatie aan de functie doorgeeft, en #> het script weer sluit.  Merk op dat de namen van TExpressive functies Engelstalig zijn.

Voorbeeld 1

Om alles wat tastbaarder te maken starten we met een simpel voorbeeld:

De som van 1 en 2 is: <#Sum Value:"1" Value:"2"#>

Wanneer u dit in een sjabloonbestand opslaat en verwerkt met TExpressive zal het resulterende bestand bevatten:

De som van 1 en 2 is: 3

Het eerste deel van de regel start met normale tekst, dus dit wordt een-op-een in het resultaat gebruikt.  Daarna wordt het script door TExpressive verwerkt, welke slechts de functie "Sum" ("som") bevat.  Het resultaat van deze functie is de waarde "3", dus in plaats van het script met de "Sum" functie schrijft TExpressive de waarde 3 uit.

Voorbeeld 2

Een wat bruikbaarder voorbeeld:

<#Set Param:"HuisdierNaam" To:"Woezel"#>
De naam van mijn huisdier is: <#Use Param:"HuisdierNaam"#>

Wanneer dit met TExpressive wordt verwerkt zal het resultaat zijn:


De naam van mijn huisdier is: Woezel

In bovenstaand voorbeeld komen enkele belangrijke details voor;

  • Het bovenstaande voorbeeld bevat twee scripts; een bevat de "Set" functie en de andere de "Use" functie.
  • Er staat een stuk normale tekst tussen de scripts dat niet zal worden verwerkt en een-op-een wordt overgenomen in het resultaat.
  • Het resultaat start met een lege regel.

Het eerste script wordt als eerste verwerkt, daarna wordt de tekst tussen de script aan het resultaat toegevoegd, en als laatste wordt het tweede script verwerkt en zijn uitvoer wordt wederom aan het resultaat toegevoegd.

Deze scripts gebruiken de functies "Set" ("zet") en "Use" ("gebruik") samen.  De "Set" functie zet een waarde in een parameter.  U kunt parameters beschouwen als de lades van een ladekast; elke lade is gelabeld met een naam en kan informatie bevatten.  In het bovenstaande voorbeeld maakt de "Set" functie een lade met daarop de naam "HuisdierNaam", en slaat er de informatie "Woezel" in op.  Parameters kunnen op hun beurt weer gebruikt worden door andere functies, zoals de "Use" functie in dit voorbeeld (dat gewoon de waarde van de parameter uitschrijft).

De "Set" functie laat geen sporen achter in het uiteindelijke resultaat, en omdat dit de enige functie in het eerste script is zal het eerste script ook geen uitvoer opleveren.  Omdat het eerste script de enige inhoud van de eerste regel was, blijft de eerste regel leeg in het resultaat.  Na die eerste regel komt er een stuk tekst dat een-op-een gebruikt wordt, dus die tekst wordt daarna aan het resultaat toegevoegd.  Na de tekst komt het script met de "Use" functie, die naar de lade genaamd "HuisdierNaam" zoekt en zijn informatie uitschrijft.

Als u de eerste lege regel niet in het resultaat wilt zien moet u het sjabloon anders opzetten, bv. zoals:

<#
  Set Param:"HuisdierNaam" To:"Woezel"
#>De naam van mijn huisdier is: <#Use Param:"HuisdierNaam"#>

Dit geeft het resultaat:

De naam van mijn huisdier is: Woezel

Merk op dat het geen probleem is om spatiëring en zelfs regeleinden tussen de onderdelen van een functie in een script te plaatsen; ze zullen het resultaat van de functie em het script niet beïnvloeden.  Dus door de eigenlijke functieinhoud (de naam "Set" en het argument "To") op een afzonderlijke regel te plaatsen en te indenteren valt het meer op dat er daar een TExpressive script staat.  En door de tekst meteen na het eind van het eerste script te laten beginnen (door het woord "De" meteen na de script sluiting "#>" te laten komen), zal het eerste woord starten aan de start van het sjabloonresultaat.

Voorbeeld 3

Een laatste uitgebreider voorbeeld:

<#
  Set Param:"DierNaam" To:"Kat";
  Set Param:"BestandsName" To:(
    Use Param:"DierNaam"#>Naam.txt<#
  );
  Set Param:"HuisdierNaam" To:(
    Input File:BestandsName
  )
#>De naam van mijn huisdier is: <#Replace What:"e" By:"." In:HuisdierNaam#>

Voeg daar het bestand "KatNaam.txt" aan toe met de inhoud:

Woezel

Verwerk het daarna met TExpressive, en het resultaat is wederom:

De naam van mijn huisdier is: Woezel

In dit voorbeeld zijn er drie "Set" functies in het eerste script.  In plaats van elke keer een nieuw script te openen en te sluiten voor elke "Set" plaatsen we gewoon een ";" ertussen wat hetzelfde effect heeft.

De eerste "Set" functie werkt zoals in het vorige voorbeeld; het zet de parameter genaamd "DierNaam" op de waarde "Kat".

De tweede "Set" zet op zijn beurt de parameter "BestandsNaam", maar dit keer is de waarde om te gebruiken het resultaat van een ingevoegd TExpressive script.  Waar u een waarde voor een functie argument opgeeft (door die waarde tussen aanhalingstekens op te geven) kunt u ook een ingevoegd stuk TExpressive script opgeven door "(" en ")" te gebruiken, en het ingevoegde script ertussen te plaatsen.  In dit geval schrijft het ingevoegde script eerst de waarde van de parameter "DierNaam" uit (welke op "Kat" is gezet), en plakt er de tekst "Naam.txt" aan vast,  Dit ingevoegd script heeft dus "KatNaam.txt" als resultaat, wat daarna in de parameter genaamd "BestandsNaam" wordt opgeslagen.

De derde "Set" werkt ook weer met een ingevoegd script.  Het gebruikt de functie "Input" ("haal binnen"), dat de inhoud van een ander bestand invoegt.  De bestandsnaam van het te gebruiken bestand wordt opgegeven via het argument "File".  Hier wordt de derde manier van informatie aan een functie doorgeven gebruikt - de waarde van een parameter opgeven.  Wanneer u een stuk tekst opgeeft kunt u het tussen aanhalingstekens opgeven, zoals "een stuk tekst".  Wanneer u een ingevoegd TExpressive scriptfragment opgeeft kunt u het opgeven als (ingevoegde script).  En wanneer u een parameterwaarde gebruikt kunt u zijn naam rechtstreeks gebruiken zoals bv. ParameterNaam.  Omdat de parameter "BestandsNaam" op "KatNaam.txt" is gezet zal de "Input" functie de inhoud van dat bestand inlezen, welke op zijn beurt de tekst "Woezel" bevat.

Merk op dat terwijl de "Input" functie de naam van de parameter zonder aanhalingstekens gebruikte, de "Set" functie dit niet deed.  Dit komt omdat de "Set" functie om de naam van de te zetten parameter vraagt, wat feitelijk gewoon een stuk tekst is.

Meer informatie

Dit zou u op gang moeten helpen met hoe TExpressive sjablonen en scripts worden samengesteld.  Gedetaileerdere informatie over de exacte taal syntax kan op de Taal syntax helppagina worden gevonden.  Een complete lijst met alle beschikbare functies en hoe ze moeten worden gebruikt kan worden gevonden op de Beschikbare functies helppagina.  Wanneer u complexere sjablonen begint te maken kan het ook tijd zijn om de Scriptfragmenten maken helppagina te raadplegen, die u laat zien hoe u algemene sjabloononderdelen nog algemener maakt en hoe u uw eigen functies kunt maken.