Riferimento sintassi Spintax
Riferimento completo per il markup dei template spintax. La sintassi è compatibile con lo standard Generating The Web (GTW).
Enumerazioni { }
Seleziona casualmente una opzione dalla lista.
{option1|option2|option3}
Esempi
{blue|grey|clear}
{|online|internet} casino ← empty option = sometimes nothing
{1X{S|s}lots} ← nested enumerations
{license {|#8048} from Curacao} ← nesting with empty option
Regole
- Delimitatori:
{e} - Separatore:
| - Supporta l'annidamento a profondità arbitraria
- Le opzioni vuote sono valide (producono stringa vuota)
- La risoluzione avviene dall'espressione più interna verso l'esterno
Permutazioni [ ]
Seleziona N elementi, li mescola e li unisce con separatori.
Permutazioni semplici
Tutti gli elementi inclusi, separati da spazi:
[1|2|3|4]
Esempi di output: 1 4 3 2, 2 3 4 1, 3 2 4 1
Con separatore
Separatore uniforme specificato in < > all'inizio:
[<, > 1|2|3|4]
Esempi di output: 2, 1, 4, 3, 4, 3, 2, 1
Importante: Nessuno spazio tra [ e <separatore>.
Separatori per elemento
Ogni opzione può avere il proprio separatore definito con <sep> prima del | precedente:
[<, > 1|2|3 < and >|4]
Esempi di output: 1, 3, 2 and 4, 3, 1, 2 and 4
Permutazioni con combinazioni
Numero minimo/massimo di elementi e separatori configurabili:
[<minsize=1;maxsize=3;sep=", ";lastsep=" and "> apple|plum|orange|apricot]
Esempi di output: apple, plum and orange, apple and apricot, orange
Parametri di configurazione
| Parametro | Predefinito | Descrizione |
|---|---|---|
minsize | totale di tutti | Numero minimo di elementi da selezionare |
maxsize | totale di tutti | Numero massimo di elementi da selezionare |
sep | " " (spazio) | Separatore tra elementi non finali |
lastsep | uguale a sep | Separatore prima dell'ultimo elemento |
Regole delle permutazioni
- Delimitatori:
[e] - Il blocco di configurazione
<...>deve seguire immediatamente[ - I parametri di configurazione sono separati da punto e virgola
- I valori stringa nella configurazione sono tra virgolette:
sep=", " - Le enumerazioni e le permutazioni possono essere annidate nelle opzioni
- Gli elementi HTML possono essere opzioni
Variabili %var%
Definisce una variabile riutilizzabile che viene sostituita ovunque appaia.
#set %VARIABLE_NAME% = value or spintax structure
Esempi
#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%.
Regole delle variabili
#setdeve iniziare all'inizio di una riga- I nomi delle variabili sono racchiusi in
%:%nome% - I nomi delle variabili sono alfanumerici + underscore
- I valori possono contenere qualsiasi sintassi spintax (enumerazioni, permutazioni, altre variabili)
- Le variabili vengono espanse quando referenziate, non quando definite (valutazione lazy)
- Le righe
#setvengono rimosse dall'output
Ambiti delle variabili nel plugin WordPress
Il plugin supporta tre ambiti di variabili. Quando lo stesso nome esiste in più ambiti, l'ambito più forte prevale:
- Variabili di runtime (più forte) — passate tramite shortcode:
[spintax slug="greeting" name="Alice"] - Variabili locali — definite con
#setall'interno del template - Variabili globali (più debole) — definite nella pagina Impostazioni
Include #include
Incorpora un altro template nella posizione della direttiva.
#include "hero-text"
Regole degli include
- Il riferimento al template è tra virgolette doppie
- Risolve per slug del template o ID numerico
- I template inclusi possono contenere le proprie variabili e spintax
- Gli include ricorsivi sono supportati
- I riferimenti circolari vengono rilevati e bloccati
- I template figli ereditano le variabili globali e di runtime ma non le locali
#setdel genitore
Commenti /#...#/
Il testo tra i marcatori di commento viene rimosso dall'output prima di qualsiasi altra elaborazione.
/#
This is a comment section.
It can span multiple lines.
It won't appear in output.
#/
Regole dei commenti
- Delimitatore di inizio:
/# - Delimitatore di fine:
#/ - Possono estendersi su più righe
- Non possono essere annidati
- Rimossi prima di qualsiasi altra elaborazione
Annidamento
Tutti gli elementi di sintassi possono essere annidati l'uno nell'altro a profondità arbitraria:
{option1|[<, > sub1|sub2|sub3]|option3}
[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]
#set %var% = {a|[b|c]}
Post-elaborazione
Il motore applica la correzione automatica del testo dopo la generazione:
- Protegge URL, email, domini, decimali e abbreviazioni dalla capitalizzazione
- Elimina spazi e tabulazioni duplicati
- Rimuove gli spazi prima della punteggiatura (
,.!?) - Aggiunge uno spazio dopo la punteggiatura dove manca
- Capitalizza la prima lettera dell'output (saltando i tag HTML)
- Capitalizza dopo la punteggiatura di fine frase
- Capitalizza dopo i tag HTML a livello di blocco
- Capitalizza dopo le interruzioni di riga
- Ripristina i segnaposto protetti
Riepilogo della sintassi
| Funzionalità | Sintassi | Comportamento |
|---|---|---|
| Enumerazione | {a|b|c} | Sceglie un'opzione casuale |
| Permutazione | [a|b|c] | Sceglie N, mescola, unisce |
| Separatore | [<sep> a|b|c] | Permutazione con separatore uniforme |
| Sep per elemento | [<,> a|b <x>|c] | Permutazione con separatori personalizzati |
| Combinazioni | [<config> a|b|c] | Permutazione con conteggio min/max |
| Variabile | #set %var% = val | Sostituzione riutilizzabile |
| Include | #include "slug" | Incorpora un altro template |
| Commento | /#...#/ | Rimosso dall'output |
La sintassi è compatibile con lo standard Generating The Web (GTW).