Nested Spintax
Wie Verschachtelung flaches Spinning in eine leistungsfähige Template-Engine verwandelt — und warum der Spintax.Net-Ansatz der Standard ist.
Was ist Nested Spintax?
Normaler Spintax wählt eine zufällige Option aus einer Liste: {red|blue|green} erzeugt eine von drei Farben. Nested Spintax platziert Spintax innerhalb von Spintax — wie eine Matroschka-Puppe, bei der jede Schicht mehr Variation enthüllt.
Wenn die Engine verschachtelte Strukturen antrifft, löst sie von der innersten Expression nach außen auf. Die inneren geschweiften Klammern werden zuerst ausgewertet, und ihr Ergebnis wird Teil der äußeren Expression.
{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.
Warum Verschachtelung wichtig ist
Ohne Verschachtelung sind Ihre Optionen flach. Drei Enumerationen mit je drei Optionen ergeben 3 + 3 + 3 = 9 Fragmente. Mit Verschachtelung kombinieren sich dieselben Elemente multiplikativ: 3 × 3 × 3 = 27 einzigartige Varianten aus einer einzigen kompakten Vorlage.
Dieses exponentielle Wachstum ist der Schlüssel zur Erzeugung wirklich einzigartiger Inhalte. Eine mäßig komplexe Vorlage mit verschachtelten Enumerationen und Permutationen kann Tausende oder Millionen unterschiedlicher Ausgaben erzeugen — alles aus einer einzigen sorgfältig erstellten Quelle.
Häufige Einschränkungen anderer Tools
Die meisten Spintax-Tools beherrschen nur die Grundlagen. Hier ist, was typischerweise schiefgeht:
- Nur Enum-in-Enum — sie unterstützen
{a|{b|c}}, aber nichts anderes. Keine Permutationen, keine Variablen, keine Includes innerhalb anderer Elemente. - Tiefenlimits — viele Parser versagen nach 2–3 Verschachtelungsebenen und erzeugen stillschweigend fehlerhafte Ausgaben.
- Keine Bereinigung — nach dem Auflösen verschachtelter Strukturen kollabieren Leerzeichen, verdoppelt sich Interpunktion, bricht die Groß-/Kleinschreibung. Das Ergebnis erfordert manuelle Bearbeitung.
- Keine Kombinierbarkeit — ohne Variablen und Includes ist jede Vorlage eine Insel. Die Wiederverwendung gemeinsamer Blöcke bedeutet Copy-Paste.
Der Spintax.Net-Ansatz
Spintax.Net implementiert Verschachtelung als erstklassiges Feature, nicht als Nachgedanke. Fünf Designentscheidungen machen es möglich:
- Beliebige Tiefe — es gibt kein Verschachtelungslimit. Zehn Ebenen tief funktioniert genauso wie zwei.
- Elementübergreifende Verschachtelung — Enumerationen innerhalb von Permutationen, Permutationen innerhalb von Enumerationen, Variablen mit verschachtelten Strukturen, Includes, die ganze verschachtelte Vorlagen einbetten. Jedes Element innerhalb jedes anderen.
- Auflösung von innen nach außen — die Engine löst immer von der tiefsten Ebene nach außen auf. Das macht die Auswertung vorhersagbar und debuggbar.
- Intelligente Nachbearbeitung — nachdem alle Verschachtelungen aufgelöst sind, korrigiert die Engine automatisch die Groß-/Kleinschreibung, kollabiert doppelte Leerzeichen, korrigiert Interpunktionsabstände und behandelt Satzgrenzen. Die Ausgabe ist sauberer Text, keine rohe Verkettung.
- Sicherheit — Erkennung zirkulärer Referenzen bei
#includeverhindert Endlosschleifen. Variablen-Scope-Regeln (Runtime > lokal > global) verhindern versehentliches Überschreiben.
Von einfach bis fortgeschritten
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.
KI + Nested Spintax
Große Sprachmodelle sind hervorragend im Schreiben komplexer verschachtelter Vorlagen. Ein einziger Prompt kann eine Vorlage mit mehreren Verschachtelungsebenen, bedingten Blöcken über Variablen und wiederverwendbaren Abschnitten über Includes erzeugen.
Der Workflow ist einfach: Verwenden Sie KI, um die Vorlage einmal zu erstellen, dann verwenden Sie Spintax, um einzigartige Varianten günstig für immer zu generieren. Ein API-Aufruf, um die Vorlage zu erstellen. Null API-Aufrufe, um jede Variante zu generieren. Nested Spintax macht dies wirtschaftlich tragfähig — je tiefer die Verschachtelung, desto mehr einzigartige Ausgaben pro Vorlage.
Erste Schritte
Bereit, Nested Spintax in Ihren Projekten zu verwenden? Beginnen Sie mit der Syntaxreferenz für die vollständige Spezifikation, oder probieren Sie das Spintax WordPress-Plugin, um Verschachtelung in Aktion zu sehen.