Spintax-Syntaxreferenz
Vollständige Referenz für Spintax-Vorlagen-Markup. Die Syntax ist kompatibel mit dem Generating The Web (GTW) Standard.
Enumerationen { }
Wählt zufällig eine Option aus der Liste.
{option1|option2|option3}
Beispiele
{blue|grey|clear}
{|online|internet} casino ← empty option = sometimes nothing
{1X{S|s}lots} ← nested enumerations
{license {|#8048} from Curacao} ← nesting with empty option
Regeln
- Begrenzer:
{und} - Trennzeichen:
| - Unterstützt Verschachtelung in beliebiger Tiefe
- Leere Optionen sind gültig (erzeugen leere Zeichenkette)
- Auflösung erfolgt vom innersten Ausdruck nach außen
Permutationen [ ]
Wählt N Elemente, mischt sie und verbindet sie mit Trennzeichen.
Einfache Permutationen
Alle Elemente einbezogen, durch Leerzeichen getrennt:
[1|2|3|4]
Ausgabebeispiele: 1 4 3 2, 2 3 4 1, 3 2 4 1
Mit Trennzeichen
Einheitliches Trennzeichen angegeben in < > am Anfang:
[<, > 1|2|3|4]
Ausgabebeispiele: 2, 1, 4, 3, 4, 3, 2, 1
Wichtig: Kein Leerzeichen zwischen [ und <Trennzeichen>.
Trennzeichen pro Element
Jede Option kann ein eigenes Trennzeichen haben, definiert mit <sep> vor dem vorhergehenden |:
[<, > 1|2|3 < and >|4]
Ausgabebeispiele: 1, 3, 2 and 4, 3, 1, 2 and 4
Permutationen mit Kombinationen
Konfigurierbare minimale/maximale Elementanzahl und Trennzeichen:
[<minsize=1;maxsize=3;sep=", ";lastsep=" and "> apple|plum|orange|apricot]
Ausgabebeispiele: apple, plum and orange, apple and apricot, orange
Konfigurationsparameter
| Parameter | Standard | Beschreibung |
|---|---|---|
minsize | Anzahl aller | Minimale Anzahl zu wählender Elemente |
maxsize | Anzahl aller | Maximale Anzahl zu wählender Elemente |
sep | " " (Leerzeichen) | Trennzeichen zwischen nicht-letzten Elementen |
lastsep | wie sep | Trennzeichen vor dem letzten Element |
Permutationsregeln
- Begrenzer:
[und] - Konfigurationsblock
<...>muss unmittelbar nach[folgen - Konfigurationsparameter werden durch Semikolon getrennt
- Zeichenkettenwerte in der Konfiguration stehen in Anführungszeichen:
sep=", " - Enumerationen und Permutationen können innerhalb von Optionen verschachtelt werden
- HTML-Elemente können Optionen sein
Variablen %var%
Definiert eine wiederverwendbare Variable, die überall dort eingesetzt wird, wo sie erscheint.
#set %VARIABLE_NAME% = value or spintax structure
Beispiele
#set %name% = John
#set %greeting% = {Hello|Hi|Hey}
#set %items% = [<minsize=2;maxsize=3;sep=", ";lastsep=" and "> apples|oranges|bananas]
Some text with %name% and %greeting%, also %items%.
Variablenregeln
#setmuss am Zeilenanfang stehen- Variablennamen stehen in
%:%name% - Variablennamen sind alphanumerisch + Unterstrich
- Werte können beliebige Spintax-Syntax enthalten (Enumerationen, Permutationen, andere Variablen)
- Variablen werden beim Referenzieren expandiert, nicht bei der Definition (Lazy Evaluation)
#set-Zeilen werden aus der Ausgabe entfernt
Variablenbereiche im WordPress-Plugin
Das Plugin unterstützt drei Variablenbereiche. Wenn derselbe Name in mehreren Bereichen existiert, gewinnt der stärkste Bereich:
- Laufzeitvariablen (stärkster) — über Shortcode übergeben:
[spintax slug="greeting" name="Alice"] - Lokale Variablen — mit
#setin der Vorlage definiert - Globale Variablen (schwächster) — auf der Einstellungsseite definiert
Includes #include
Bettet eine andere Vorlage an der Position der Direktive ein.
#include "hero-text"
Include-Regeln
- Vorlagenreferenz steht in doppelten Anführungszeichen
- Auflösung nach Vorlagen-Slug oder numerischer ID
- Eingebettete Vorlagen können eigene Variablen und Spintax enthalten
- Rekursive Includes werden unterstützt
- Zirkuläre Referenzen werden erkannt und blockiert
- Kind-Vorlagen erben globale und Laufzeitvariablen, aber nicht die
#set-Lokalen des Elternteils
Kommentare /#...#/
Text zwischen Kommentarmarkierungen wird vor jeder anderen Verarbeitung aus der Ausgabe entfernt.
/#
This is a comment section.
It can span multiple lines.
It won't appear in output.
#/
Kommentarregeln
- Start-Begrenzer:
/# - End-Begrenzer:
#/ - Können sich über mehrere Zeilen erstrecken
- Können nicht verschachtelt werden
- Werden vor jeder anderen Verarbeitung entfernt
Verschachtelung
Alle Syntaxelemente können in beliebiger Tiefe ineinander verschachtelt werden:
{option1|[<, > sub1|sub2|sub3]|option3}
[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]
#set %var% = {a|[b|c]}
Nachbearbeitung
Die Engine wendet nach der Generierung automatische Textkorrektur an:
- Schützt URLs, E-Mails, Domains, Dezimalzahlen und Abkürzungen vor Großschreibung
- Eliminiert doppelte Leerzeichen und Tabulatoren
- Entfernt Leerzeichen vor Satzzeichen (
,.!?) - Fügt Leerzeichen nach Satzzeichen ein, wo sie fehlen
- Schreibt den ersten Buchstaben der Ausgabe groß (HTML-Tags überspringend)
- Großschreibung nach satzbeendenden Satzzeichen
- Großschreibung nach Block-Level-HTML-Tags
- Großschreibung nach Zeilenumbrüchen
- Stellt geschützte Platzhalter wieder her
Syntaxübersicht
| Funktion | Syntax | Verhalten |
|---|---|---|
| Enumeration | {a|b|c} | Wählt eine zufällige Option |
| Permutation | [a|b|c] | Wählt N, mischt, verbindet |
| Trennzeichen | [<sep> a|b|c] | Permutation mit einheitlichem Trennzeichen |
| Sep pro Element | [<,> a|b <x>|c] | Permutation mit benutzerdefinierten Trennzeichen |
| Kombinationen | [<config> a|b|c] | Permutation mit Min/Max-Anzahl |
| Variable | #set %var% = val | Wiederverwendbare Substitution |
| Include | #include "slug" | Bettet eine andere Vorlage ein |
| Kommentar | /#...#/ | Wird aus der Ausgabe entfernt |
Die Syntax ist kompatibel mit dem Generating The Web (GTW) Standard.