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âmetroPadrãoDescrição
minsizetotal de todosNúmero mínimo de elementos a selecionar
maxsizetotal de todosNúmero máximo de elementos a selecionar
sep" " (espaço)Separador entre itens não finais
lastsepigual a sepSeparador 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

  • #set deve 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 #set sã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:

  1. Variáveis de runtime (mais forte) — passadas via shortcode: [spintax slug="greeting" name="Alice"]
  2. Variáveis locais — definidas com #set dentro do template
  3. 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 #set do 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:

  1. Protege URLs, emails, domínios, decimais e abreviações da capitalização
  2. Elimina espaços e tabulações duplicados
  3. Remove espaços antes da pontuação (, . ! ?)
  4. Adiciona espaço após pontuação onde falta
  5. Capitaliza a primeira letra da saída (pulando tags HTML)
  6. Capitaliza após pontuação de fim de frase
  7. Capitaliza após tags HTML de nível de bloco
  8. Capitaliza após quebras de linha
  9. Restaura os marcadores protegidos

Resumo da sintaxe

RecursoSintaxeComportamento
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% = valSubstituiçã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).