Nested Spintax

Como o aninhamento transforma o spinning simples em um poderoso motor de templates — e por que a abordagem Spintax.Net é o padrão.

O que é Nested Spintax?

O spintax comum escolhe uma opção aleatória de uma lista: {red|blue|green} produz uma de três cores. O Nested Spintax coloca spintax dentro de spintax — como uma matrioska, onde cada camada revela mais variação por dentro.

Quando o motor encontra estruturas aninhadas, resolve da expressão mais interna para fora. As chaves internas são avaliadas primeiro e seu resultado se torna parte da expressão externa.

{red|{dark|light} blue} car

Here {dark|light} resolves first (e.g. dark), producing {red|dark blue}. Then the outer enumeration picks one option: red or dark blue.

Por que o aninhamento importa

Sem aninhamento, suas opções são planas. Três enumerações com três opções cada dão 3 + 3 + 3 = 9 fragmentos. Com aninhamento, os mesmos elementos se combinam multiplicativamente: 3 × 3 × 3 = 27 variantes únicas de um único template compacto.

Esse crescimento exponencial é a chave para gerar conteúdo verdadeiramente único. Um template moderadamente complexo com enumerações e permutações aninhadas pode produzir milhares ou milhões de saídas distintas — tudo a partir de uma única fonte cuidadosamente elaborada.

Limitações comuns de outras ferramentas

A maioria das ferramentas de spintax lida apenas com o básico. Veja o que normalmente dá errado:

  • Apenas enum-in-enum — suportam {a|{b|c}}, mas nada mais. Sem permutações, sem variáveis, sem includes dentro de outros elementos.
  • Limites de profundidade — muitos parsers quebram após 2–3 níveis de aninhamento, produzindo silenciosamente saída corrompida.
  • Sem limpeza — após resolver estruturas aninhadas, espaços colapsam, pontuação se duplica, capitalização se quebra. O resultado precisa de edição manual.
  • Sem composabilidade — sem variáveis e includes, cada template é uma ilha. Reutilizar blocos comuns significa copiar e colar.

A abordagem Spintax.Net

O Spintax.Net implementa o aninhamento como recurso de primeira classe, não como um adendo. Cinco decisões de design fazem funcionar:

  1. Profundidade arbitrária — não há limite de aninhamento. Dez níveis de profundidade funcionam da mesma forma que dois.
  2. Aninhamento entre elementos — enumerações dentro de permutações, permutações dentro de enumerações, variáveis contendo estruturas aninhadas, includes incorporando templates aninhados inteiros. Qualquer elemento dentro de qualquer outro.
  3. Resolução de dentro para fora — o motor sempre resolve do nível mais profundo para fora. Isso torna a avaliação previsível e fácil de depurar.
  4. Pós-processamento inteligente — após todos os aninhamentos serem resolvidos, o motor corrige automaticamente a capitalização, colapsa espaços duplicados, corrige espaçamento de pontuação e trata limites de frase. A saída é texto limpo, não concatenação bruta.
  5. Segurança — detecção de referências circulares para #include previne loops infinitos. Regras de escopo de variáveis (runtime > local > global) previnem sobrescrita acidental.

Do simples ao avançado

1. Enum inside enum

{{premium|luxury} sedan|{compact|mid-size} SUV}

Inner enumerations resolve first, then the outer one picks a result. Possible outputs: premium sedan, luxury sedan, compact SUV, mid-size SUV.

2. Enum inside permutation

[<minsize=2;maxsize=3;sep=", ";lastsep=" and "> {red|blue} apples|{big|small} oranges|bananas]

Each permutation element contains its own enumeration. The engine resolves inner enumerations first, then shuffles and joins. Example output: blue apples, bananas and small oranges.

3. Variables with nested spintax

#set %product% = {{premium|budget} {laptop|tablet}|{smart|classic} phone}
#set %action% = {Buy|Get|Order}

%action% your new %product% today!

Variables store nested spintax and resolve each time they are referenced. Combined with multiple variables, the variant count multiplies rapidly.

4. Includes with nesting

/#  main template  #/
#include "hero-text"

{Check out|Discover|Explore} our [<, > features|plans|pricing].

The included template can itself contain enumerations, permutations, variables, and even further includes. Circular reference detection keeps everything safe.

IA + Nested Spintax

Grandes modelos de linguagem são excelentes para escrever templates aninhados complexos. Um único prompt pode produzir um template com múltiplos níveis de aninhamento, blocos condicionais via variáveis e seções reutilizáveis via includes.

O fluxo de trabalho é simples: use a IA para criar o template uma vez, depois use o Spintax para gerar variantes únicas de forma econômica para sempre. Uma chamada de API para criar o template. Zero chamadas de API para gerar cada variante. O Nested Spintax é o que torna isso economicamente viável — quanto mais profundo o aninhamento, mais saídas únicas por template.

Primeiros passos

Pronto para usar o Nested Spintax em seus projetos? Comece com a referência de sintaxe para a especificação completa, ou experimente o plugin Spintax para WordPress para ver o aninhamento em ação.