Genest Spintax
Hoe nesting vlakke spinning transformeert in een krachtige sjabloonengine — en waarom de Spintax.Net-aanpak de standaard is.
Wat is genest Spintax?
Gewone spintax kiest een willekeurige optie uit een lijst: {rood|blauw|groen} levert een van drie kleuren op. Genest spintax plaatst spintax binnen spintax — als een matroesjka-pop, waarbij elke laag meer variatie binnenin onthult.
Wanneer de engine geneste structuren tegenkomt, lost hij van de binnenste expressie naar buiten op. De binnenste accolades worden eerst geëvalueerd en hun resultaat wordt onderdeel van de buitenste expressie.
{red|{dark|light} blue} car
Here {dark|light} resolves first (e.g. dark), producing {red|dark blue}. Then the outer enumeration picks one option: red or dark blue.
Waarom nesting ertoe doet
Zonder nesting zijn je opties vlak. Drie enumeraties met elk drie opties geven je 3 + 3 + 3 = 9 fragmenten. Met nesting combineren dezelfde elementen multiplicatief: 3 × 3 × 3 = 27 unieke varianten uit één compact sjabloon.
Deze exponentiële groei is de sleutel tot het genereren van werkelijk unieke content. Een matig complex sjabloon met geneste enumeraties en permutaties kan duizenden of miljoenen verschillende outputs produceren — allemaal uit één zorgvuldig opgestelde bron.
Veelvoorkomende beperkingen van andere tools
De meeste spintax-tools verwerken alleen de basis. Dit gaat er doorgaans mis:
- Alleen enum-in-enum — ze ondersteunen
{a|{b|c}}maar verder niets. Geen permutaties, geen variabelen, geen includes binnen andere elementen. - Dieptebeperkingen — veel parsers falen na 2–3 nestingniveaus en produceren stilzwijgend beschadigde output.
- Geen opschoning — na het oplossen van geneste structuren klappen spaties in, verdubbelt interpunctie en breekt hoofdlettergebruik. Het resultaat vereist handmatige bewerking.
- Geen composabiliteit — zonder variabelen en includes is elk sjabloon een eiland. Hergebruik van veelgebruikte blokken betekent kopiëren en plakken.
De Spintax.Net-aanpak
Spintax.Net implementeert nesting als eersteklas functie, niet als bijzaak. Vijf ontwerpbeslissingen maken het mogelijk:
- Willekeurige diepte — er is geen nestinglimiet. Tien niveaus diep werkt hetzelfde als twee.
- Kruiselement-nesting — enumeraties binnen permutaties, permutaties binnen enumeraties, variabelen met geneste structuren, includes die volledige geneste sjablonen insluiten. Elk element binnen elk ander.
- Van-binnen-naar-buiten-resolutie — de engine lost altijd van het diepste niveau naar buiten op. Dit maakt evaluatie voorspelbaar en debugbaar.
- Slimme nabewerking — nadat alle nesting is opgelost, corrigeert de engine automatisch hoofdlettergebruik, verwijdert dubbele spaties, herstelt interpunctiespatiëring en verwerkt zinsovergangen. De output is schone tekst, geen ruwe aaneenschakeling.
- Veiligheid — detectie van circulaire verwijzingen voor
#includevoorkomt oneindige lussen. Variabelescopegebruik (runtime > lokaal > globaal) voorkomt onbedoelde overschrijvingen.
Van eenvoudig tot geavanceerd
1. Enum inside enum
{{premium|luxury} sedan|{compact|mid-size} SUV}
Inner enumerations resolve first, then the outer one picks a result. Possible outputs: premium sedan, luxury sedan, compact SUV, mid-size SUV.
2. Enum inside permutation
[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]
Each permutation element contains its own enumeration. The engine resolves inner enumerations first, then shuffles and joins. Example output: blue apples, bananas and small oranges.
3. Variables with nested spintax
#set %product% = {{premium|budget} {laptop|tablet}|{smart|classic} phone}
#set %action% = {Buy|Get|Order}
%action% your new %product% today!
Variables store nested spintax and resolve each time they are referenced. Combined with multiple variables, the variant count multiplies rapidly.
4. Includes with nesting
/# main template #/
#include "hero-text"
{Check out|Discover|Explore} our [<, > features|plans|pricing].
The included template can itself contain enumerations, permutations, variables, and even further includes. Circular reference detection keeps everything safe.
AI + genest Spintax
Grote taalmodellen zijn uitstekend in het schrijven van complexe geneste sjablonen. Een enkele prompt kan een sjabloon produceren met meerdere nestingniveaus, conditionele blokken via variabelen en herbruikbare secties via includes.
De workflow is eenvoudig: gebruik AI om het sjabloon eenmalig te maken en gebruik vervolgens Spintax om voor altijd goedkoop unieke varianten te genereren. Eén API-aanroep om het sjabloon te maken. Nul API-aanroepen om elke variant te genereren. Genest spintax is wat dit economisch haalbaar maakt — hoe dieper de nesting, hoe meer unieke outputs per sjabloon.
Aan de slag
Klaar om genest spintax in je projecten te gebruiken? Begin met de syntaxreferentie voor de volledige specificatie, of probeer de Spintax WordPress-plugin om nesting in actie te zien.