Referência de sintaxe Spintax
Referência completa para a marcação de templates spintax. A sintaxe é compatível com o padrão Generating The Web (GTW).
Enumerações { }
Seleciona aleatoriamente uma opção da lista.
{option1|option2|option3}
Exemplos
{blue|grey|clear}
{|online|internet} casino ← empty option = sometimes nothing
{1X{S|s}lots} ← nested enumerations
{license {|#8048} from Curacao} ← nesting with empty option
Regras
- Delimitadores:
{e} - Separador:
| - Suporta aninhamento em profundidade arbitrária
- Opções vazias são válidas (produzem string vazia)
- A resolução vai da expressão mais interna para fora
Permutações [ ]
Seleciona N elementos, embaralha e junta com separadores.
Permutações simples
Todos os elementos incluídos, separados por espaços:
[1|2|3|4]
Exemplos de saída: 1 4 3 2, 2 3 4 1, 3 2 4 1
Com separador
Separador uniforme especificado em < > no início:
[<, > 1|2|3|4]
Exemplos de saída: 2, 1, 4, 3, 4, 3, 2, 1
Importante: Sem espaço entre [ e <separador>.
Separadores por elemento
Cada opção pode ter seu próprio separador definido com <sep> antes do | anterior:
[<, > 1|2|3 < and >|4]
Exemplos de saída: 1, 3, 2 and 4, 3, 1, 2 and 4
Permutações com combinações
Quantidade mínima/máxima de elementos e separadores configuráveis:
[<minsize=1;maxsize=3;sep=", ";lastsep=" and "> apple|plum|orange|apricot]
Exemplos de saída: apple, plum and orange, apple and apricot, orange
Parâmetros de configuração
| Parâmetro | Padrão | Descrição |
|---|---|---|
minsize | total de todos | Número mínimo de elementos a selecionar |
maxsize | total de todos | Número máximo de elementos a selecionar |
sep | " " (espaço) | Separador entre itens não finais |
lastsep | igual a sep | Separador antes do último elemento |
Regras de permutação
- Delimitadores:
[e] - O bloco de configuração
<...>deve seguir imediatamente[ - Os parâmetros de configuração são separados por ponto e vírgula
- Valores de string na configuração estão entre aspas:
sep=", " - Enumerações e permutações podem ser aninhadas dentro das opções
- Elementos HTML podem ser opções
Variáveis %var%
Define uma variável reutilizável que é substituída onde quer que apareça.
#set %VARIABLE_NAME% = value or spintax structure
Exemplos
#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%.
Regras de variáveis
#setdeve iniciar no começo de uma linha- Nomes de variáveis são delimitados por
%:%nome% - Nomes de variáveis são alfanuméricos + underscore
- Valores podem conter qualquer sintaxe spintax (enumerações, permutações, outras variáveis)
- Variáveis são expandidas quando referenciadas, não quando definidas (avaliação preguiçosa)
- Linhas
#setsão removidas da saída
Escopos de variáveis no plugin WordPress
O plugin suporta três escopos de variáveis. Quando o mesmo nome existe em múltiplos escopos, o escopo mais forte prevalece:
- Variáveis de runtime (mais forte) — passadas via shortcode:
[spintax slug="greeting" name="Alice"] - Variáveis locais — definidas com
#setdentro do template - Variáveis globais (mais fraco) — definidas na página de Configurações
Includes #include
Incorpora outro template na posição da diretiva.
#include "hero-text"
Regras de include
- A referência do template está entre aspas duplas
- Resolve por slug do template ou ID numérico
- Templates incluídos podem conter suas próprias variáveis e spintax
- Includes recursivos são suportados
- Referências circulares são detectadas e bloqueadas
- Templates filhos herdam variáveis globais e de runtime, mas não as locais
#setdo pai
Comentários /#...#/
O texto entre marcadores de comentário é removido da saída antes de qualquer outro processamento.
/#
This is a comment section.
It can span multiple lines.
It won't appear in output.
#/
Regras de comentários
- Delimitador de início:
/# - Delimitador de fim:
#/ - Podem abranger múltiplas linhas
- Não podem ser aninhados
- Removidos antes de qualquer outro processamento
Aninhamento
Todos os elementos de sintaxe podem ser aninhados uns dentro dos outros em profundidade arbitrária:
{option1|[<, > sub1|sub2|sub3]|option3}
[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]
#set %var% = {a|[b|c]}
Pós-processamento
O motor aplica correção automática de texto após a geração:
- Protege URLs, emails, domínios, decimais e abreviações da capitalização
- Elimina espaços e tabulações duplicados
- Remove espaços antes da pontuação (
,.!?) - Adiciona espaço após pontuação onde falta
- Capitaliza a primeira letra da saída (pulando tags HTML)
- Capitaliza após pontuação de fim de frase
- Capitaliza após tags HTML de nível de bloco
- Capitaliza após quebras de linha
- Restaura os marcadores protegidos
Resumo da sintaxe
| Recurso | Sintaxe | Comportamento |
|---|---|---|
| Enumeração | {a|b|c} | Escolhe uma opção aleatória |
| Permutação | [a|b|c] | Escolhe N, embaralha, junta |
| Separador | [<sep> a|b|c] | Permutação com separador uniforme |
| Sep por elemento | [<,> a|b <x>|c] | Permutação com separadores personalizados |
| Combinações | [<config> a|b|c] | Permutação com contagem mín/máx |
| Variável | #set %var% = val | Substituição reutilizável |
| Include | #include "slug" | Incorpora outro template |
| Comentário | /#...#/ | Removido da saída |
A sintaxe é compatível com o padrão Generating The Web (GTW).