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:
- Profundidade arbitrária — não há limite de aninhamento. Dez níveis de profundidade funcionam da mesma forma que dois.
- 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.
- 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.
- 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.
- Segurança — detecção de referências circulares para
#includeprevine 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.