Spintax Imbriqué

Comment l'imbrication transforme le spinning plat en un puissant moteur de modèles — et pourquoi l'approche Spintax.Net fait référence.

Qu'est-ce que le Spintax Imbriqué ?

Le spintax ordinaire choisit une option aléatoire dans une liste : {rouge|bleu|vert} produit l’une des trois couleurs. Le spintax imbriqué place du spintax à l’intérieur de spintax — comme une poupée matriochka, où chaque couche révèle encore plus de variations à l’intérieur.

Lorsque le moteur rencontre des structures imbriquées, il les résout depuis l’expression la plus interne vers l’extérieur. Les accolades intérieures sont évaluées en premier, et leur résultat devient partie intégrante de l’expression extérieure.

{red|{dark|light} blue} car

Ici {dark|light} se résout en premier (p. ex. dark), produisant {red|dark blue}. Puis l’énumération externe choisit une option : red ou dark blue.

Pourquoi l'imbrication compte

Sans imbrication, vos options sont plates. Trois énumérations avec trois options chacune donnent 3 + 3 + 3 = 9 fragments. Avec l’imbrication, les mêmes éléments se combinent de manière multiplicative : 3 × 3 × 3 = 27 variantes uniques à partir d’un seul modèle compact.

Cette croissance exponentielle est la clé pour générer du contenu véritablement unique. Un modèle modérément complexe avec des énumérations et des permutations imbriquées peut produire des milliers voire des millions de résultats distincts — le tout à partir d’une seule source soigneusement élaborée.

Limitations courantes des autres outils

La plupart des outils spintax ne gèrent que les bases. Voici ce qui pose généralement problème :

  • Énumération dans énumération uniquement — ils supportent {a|{b|c}} mais rien d’autre. Pas de permutations, pas de variables, pas d’includes à l’intérieur d’autres éléments.
  • Limites de profondeur — de nombreux parsers échouent après 2–3 niveaux d’imbrication, produisant silencieusement des résultats corrompus.
  • Pas de nettoyage — après la résolution des structures imbriquées, les espaces s’effondrent, la ponctuation se dédouble, les majuscules se cassent. Le résultat nécessite une édition manuelle.
  • Pas de composabilité — sans variables et includes, chaque modèle est un îlot. Réutiliser des blocs communs signifie copier-coller.

L'approche Spintax.Net

Spintax.Net implémente l’imbrication comme une fonctionnalité de première classe, pas comme un ajout après coup. Cinq décisions de conception la rendent efficace :

  1. Profondeur arbitraire — il n’y a pas de limite d’imbrication. Dix niveaux de profondeur fonctionnent aussi bien que deux.
  2. Imbrication inter-éléments — des énumérations dans des permutations, des permutations dans des énumérations, des variables contenant des structures imbriquées, des includes intégrant des modèles imbriqués entiers. N’importe quel élément à l’intérieur de n’importe quel autre.
  3. Résolution de l’intérieur vers l’extérieur — le moteur résout toujours depuis le niveau le plus profond vers l’extérieur. Cela rend l’évaluation prévisible et déboguable.
  4. Post-traitement intelligent — après la résolution de toute l’imbrication, le moteur corrige automatiquement les majuscules, élimine les espaces en double, corrige l’espacement de la ponctuation et gère les limites de phrases. Le résultat est du texte propre, pas une concaténation brute.
  5. Sécurité — la détection de références circulaires pour #include empêche les boucles infinies. Les règles de portée des variables (runtime > local > global) empêchent les écrasements accidentels.

Du simple au complexe

1. Énumération dans une énumération

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

Les énumérations internes se résolvent d’abord, puis l’externe choisit le résultat. Sorties possibles : premium sedan, luxury sedan, compact SUV, mid-size SUV.

2. Énumération dans une permutation

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

Chaque élément de la permutation contient sa propre énumération. Le moteur résout d’abord les énumérations internes, puis mélange et assemble. Exemple de sortie : blue apples, bananas and small oranges.

3. Variables #set avec spintax imbriqué

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

%action% your new %product% today!

#set est une macro : elle stocke le spintax imbriqué non résolu et le retire au sort à chaque référence — deux mentions de %product% peuvent donc produire deux produits différents. Combiné à plusieurs variables, le nombre de variantes se multiplie rapidement.

4. #def — tiré une fois, valable partout

#def %brand% = {{Nord|Prime} Tools|Acme {Labs|Works}}

%brand% ships today. Order %brand% now!

#def résout son spintax imbriqué une fois par rendu et conserve ce résultat à chaque référence : ici les deux mentions nomment la même marque. Utilisez #def quand les références répétées doivent concorder (marques, compteurs) ; #set quand chaque référence doit varier indépendamment.

5. Conditionnelles autour de blocs imbriqués

{?PLAN?{Upgrade to|Unlock} {Pro|Premium} features|{Try|Start with} the free tier}

Le pre-pass {?VAR?then|else} choisit la branche selon que %PLAN% a une valeur — avant tout tirage aléatoire. La branche écartée est supprimée en bloc : rien à l’intérieur n’est évalué ni tiré.

6. Pluriels avec compteur imbriqué

#def %n% = {2|5|21}

Renders %n% {plural %n%: variant|variants} per click.

Le compteur est lui-même du spintax — et sa variable doit être #def, pas #set : la forme est choisie après résolution du compteur, et une macro serait encore du spintax non résolu à ce moment-là. Le nombre de formes dépend de la locale du rendu : deux en français ou en anglais, trois en russe ou en ukrainien.

7. Includes avec imbrication

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

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

Le modèle inclus peut lui-même contenir des énumérations, des permutations, des variables et même d’autres includes. La détection des références circulaires sécurise l’ensemble.

IA + Spintax Imbriqué

Les grands modèles de langage excellent dans la rédaction de modèles imbriqués complexes. Un seul prompt peut produire un modèle avec plusieurs niveaux d’imbrication, des blocs conditionnels pilotés par la valeur ({?VAR?…}), des pluriels sensibles à la locale et des sections réutilisables via des includes.

Le flux de travail est simple : utilisez l’IA pour créer le modèle une fois, puis utilisez Spintax pour générer des variantes uniques à moindre coût pour toujours. Un appel API pour créer le modèle. Zéro appel API pour générer chaque variante. Le spintax imbriqué est ce qui rend cela économiquement viable — plus l’imbrication est profonde, plus il y a de résultats uniques par modèle.

Pour commencer

Prêt à utiliser le spintax imbriqué dans vos projets ? Essayez-le en direct dans le playground — collez n’importe quel exemple ci-dessus et regardez-le se résoudre. La référence de syntaxe contient la spécification complète, et pour la production choisissez l’un des quatre moteurs open source — ou le plugin WordPress si c’est votre runtime.