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ámetroPor defectoDescripción
minsizetotal de todosNúmero mínimo de elementos a seleccionar
maxsizetotal de todosNúmero máximo de elementos a seleccionar
sep" " (espacio)Separador entre elementos no finales
lastsepigual que sepSeparador 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

  • #set debe 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 #set se 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:

  1. Variables de tiempo de ejecución (más fuerte) — pasadas mediante shortcode: [spintax slug="greeting" name="Alice"]
  2. Variables locales — definidas con #set dentro de la plantilla
  3. 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 #set del 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:

  1. Protege URLs, correos electrónicos, dominios, decimales y abreviaturas de la capitalización
  2. Elimina espacios y tabulaciones duplicados
  3. Elimina espacios antes de signos de puntuación (, . ! ?)
  4. Añade espacio después de signos de puntuación donde falta
  5. Capitaliza la primera letra de la salida (omitiendo etiquetas HTML)
  6. Capitaliza después de signos de puntuación de fin de oración
  7. Capitaliza después de etiquetas HTML de nivel de bloque
  8. Capitaliza después de saltos de línea
  9. Restaura los marcadores protegidos

Resumen de sintaxis

CaracterísticaSintaxisComportamiento
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% = valSustitució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).