Referencia de sintaxis Spintax
Referencia completa del marcado de plantillas spintax. La sintaxis es compatible con el estándar Generating The Web (GTW).
Enumeraciones { }
Selecciona aleatoriamente una opción de la lista.
{option1|option2|option3}
Ejemplos
{blue|grey|clear}
{|online|internet} casino ← empty option = sometimes nothing
{1X{S|s}lots} ← nested enumerations
{license {|#8048} from Curacao} ← nesting with empty option
Reglas
- Delimitadores:
{y} - Separador:
| - Soporta anidamiento a profundidad arbitraria
- Las opciones vacías son válidas (producen cadena vacía)
- La resolución va desde la expresión más interna hacia afuera
Permutaciones [ ]
Selecciona N elementos, los mezcla y los une con separadores.
Permutaciones simples
Todos los elementos incluidos, separados por espacios:
[1|2|3|4]
Ejemplos de salida: 1 4 3 2, 2 3 4 1, 3 2 4 1
Con separador
Separador uniforme especificado en < > al inicio:
[<, > 1|2|3|4]
Ejemplos de salida: 2, 1, 4, 3, 4, 3, 2, 1
Importante: Sin espacio entre [ y <separador>.
Separadores por elemento
Cada opción puede tener su propio separador definido con <sep> antes del | precedente:
[<, > 1|2|3 < and >|4]
Ejemplos de salida: 1, 3, 2 and 4, 3, 1, 2 and 4
Permutaciones con combinaciones
Cantidad mínima/máxima de elementos y separadores configurables:
[<minsize=1;maxsize=3;sep=", ";lastsep=" and "> apple|plum|orange|apricot]
Ejemplos de salida: apple, plum and orange, apple and apricot, orange
Parámetros de configuración
| Parámetro | Por defecto | Descripción |
|---|---|---|
minsize | total de todos | Número mínimo de elementos a seleccionar |
maxsize | total de todos | Número máximo de elementos a seleccionar |
sep | " " (espacio) | Separador entre elementos no finales |
lastsep | igual que sep | Separador antes del último elemento |
Reglas de permutación
- Delimitadores:
[y] - El bloque de configuración
<...>debe ir inmediatamente después de[ - Los parámetros de configuración se separan con punto y coma
- Los valores de cadena en la configuración van entre comillas:
sep=", " - Las enumeraciones y permutaciones pueden anidarse dentro de las opciones
- Los elementos HTML pueden ser opciones
Variables %var%
Define una variable reutilizable que se sustituye dondequiera que aparezca.
#set %VARIABLE_NAME% = value or spintax structure
Ejemplos
#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%.
Reglas de variables
#setdebe estar al inicio de una línea- Los nombres de variables se encierran en
%:%nombre% - Los nombres de variables son alfanuméricos + guion bajo
- Los valores pueden contener cualquier sintaxis spintax (enumeraciones, permutaciones, otras variables)
- Las variables se expanden cuando se referencian, no cuando se definen (evaluación perezosa)
- Las líneas
#setse eliminan de la salida
Ámbitos de variables en el plugin de WordPress
El plugin soporta tres ámbitos de variables. Cuando el mismo nombre existe en múltiples ámbitos, el ámbito más fuerte prevalece:
- Variables de tiempo de ejecución (más fuerte) — pasadas mediante shortcode:
[spintax slug="greeting" name="Alice"] - Variables locales — definidas con
#setdentro de la plantilla - Variables globales (más débil) — definidas en la página de Ajustes
Includes #include
Inserta otra plantilla en la posición de la directiva.
#include "hero-text"
Reglas de include
- La referencia de plantilla va entre comillas dobles
- Se resuelve por slug de plantilla o ID numérico
- Las plantillas incluidas pueden contener sus propias variables y spintax
- Se soportan includes recursivos
- Las referencias circulares se detectan y bloquean
- Las plantillas hijas heredan las variables globales y de tiempo de ejecución, pero no las locales
#setdel padre
Comentarios /#...#/
El texto entre marcadores de comentario se elimina de la salida antes de cualquier otro procesamiento.
/#
This is a comment section.
It can span multiple lines.
It won't appear in output.
#/
Reglas de comentarios
- Delimitador de inicio:
/# - Delimitador de fin:
#/ - Pueden abarcar múltiples líneas
- No pueden anidarse
- Se eliminan antes de cualquier otro procesamiento
Anidamiento
Todos los elementos de sintaxis pueden anidarse entre sí a profundidad 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-procesamiento
El motor aplica corrección automática de texto después de la generación:
- Protege URLs, correos electrónicos, dominios, decimales y abreviaturas de la capitalización
- Elimina espacios y tabulaciones duplicados
- Elimina espacios antes de signos de puntuación (
,.!?) - Añade espacio después de signos de puntuación donde falta
- Capitaliza la primera letra de la salida (omitiendo etiquetas HTML)
- Capitaliza después de signos de puntuación de fin de oración
- Capitaliza después de etiquetas HTML de nivel de bloque
- Capitaliza después de saltos de línea
- Restaura los marcadores protegidos
Resumen de sintaxis
| Característica | Sintaxis | Comportamiento |
|---|---|---|
| Enumeración | {a|b|c} | Elige una opción aleatoria |
| Permutación | [a|b|c] | Elige N, mezcla, une |
| Separador | [<sep> a|b|c] | Permutación con separador uniforme |
| Sep por elemento | [<,> a|b <x>|c] | Permutación con separadores personalizados |
| Combinaciones | [<config> a|b|c] | Permutación con cuenta mín/máx |
| Variable | #set %var% = val | Sustitución reutilizable |
| Include | #include "slug" | Inserta otra plantilla |
| Comentario | /#...#/ | Se elimina de la salida |
La sintaxis es compatible con el estándar Generating The Web (GTW).