Référence de syntaxe Spintax

Référence complète du balisage de modèles spintax. La syntaxe est compatible avec le standard Generating The Web (GTW).

Énumérations { }

Sélectionne aléatoirement une option dans la liste.

{option1|option2|option3}

Exemples

{blue|grey|clear}
{|online|internet} casino        ← empty option = sometimes nothing
{1X{S|s}lots}                    ← nested enumerations
{license {|#8048} from Curacao}  ← nesting with empty option

Règles

  • Délimiteurs : { et }
  • Séparateur : |
  • Prend en charge l'imbrication à profondeur arbitraire
  • Les options vides sont valides (produisent une chaîne vide)
  • La résolution va de l'expression la plus interne vers l'extérieur

Permutations [ ]

Sélectionne N éléments, les mélange et les joint avec des séparateurs.

Permutations simples

Tous les éléments inclus, séparés par des espaces :

[1|2|3|4]

Exemples de sortie : 1 4 3 2, 2 3 4 1, 3 2 4 1

Avec séparateur

Séparateur uniforme spécifié dans < > au début :

[<, > 1|2|3|4]

Exemples de sortie : 2, 1, 4, 3, 4, 3, 2, 1

Important : Pas d'espace entre [ et <séparateur>.

Séparateurs par élément

Chaque option peut avoir son propre séparateur défini avec <sep> avant le | précédent :

[<, > 1|2|3 < and >|4]

Exemples de sortie : 1, 3, 2 and 4, 3, 1, 2 and 4

Permutations avec combinaisons

Nombre minimum/maximum d'éléments et séparateurs configurables :

[<minsize=1;maxsize=3;sep=", ";lastsep=" and "> apple|plum|orange|apricot]

Exemples de sortie : apple, plum and orange, apple and apricot, orange

Paramètres de configuration

ParamètrePar défautDescription
minsizetotal de tousNombre minimum d'éléments à sélectionner
maxsizetotal de tousNombre maximum d'éléments à sélectionner
sep" " (espace)Séparateur entre les éléments non finaux
lastsepidentique à sepSéparateur avant le dernier élément

Règles de permutation

  • Délimiteurs : [ et ]
  • Le bloc de configuration <...> doit suivre immédiatement [
  • Les paramètres de configuration sont séparés par des points-virgules
  • Les valeurs de chaîne dans la configuration sont entre guillemets : sep=", "
  • Les énumérations et permutations peuvent être imbriquées dans les options
  • Les éléments HTML peuvent être des options

Variables %var%

Définit une variable réutilisable qui est substituée partout où elle apparaît.

#set %VARIABLE_NAME% = value or spintax structure

Exemples

#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%.

Règles des variables

  • #set doit commencer au début d'une ligne
  • Les noms de variables sont encadrés par % : %nom%
  • Les noms de variables sont alphanumériques + underscore
  • Les valeurs peuvent contenir toute syntaxe spintax (énumérations, permutations, autres variables)
  • Les variables sont développées lors du référencement, pas lors de la définition (évaluation paresseuse)
  • Les lignes #set sont supprimées de la sortie

Portées des variables dans le plugin WordPress

Le plugin prend en charge trois portées de variables. Lorsqu'un même nom existe dans plusieurs portées, la portée la plus forte l'emporte :

  1. Variables d'exécution (la plus forte) — passées via shortcode : [spintax slug="greeting" name="Alice"]
  2. Variables locales — définies avec #set dans le modèle
  3. Variables globales (la plus faible) — définies sur la page Réglages

Includes #include

Intègre un autre modèle à la position de la directive.

#include "hero-text"

Règles d'inclusion

  • La référence du modèle est entre guillemets doubles
  • Résolution par slug de modèle ou ID numérique
  • Les modèles inclus peuvent contenir leurs propres variables et spintax
  • Les inclusions récursives sont prises en charge
  • Les références circulaires sont détectées et bloquées
  • Les modèles enfants héritent des variables globales et d'exécution mais pas des locales #set du parent

Commentaires /#...#/

Le texte entre les marqueurs de commentaire est supprimé de la sortie avant tout autre traitement.

/#
  This is a comment section.
  It can span multiple lines.
  It won't appear in output.
#/

Règles des commentaires

  • Délimiteur de début : /#
  • Délimiteur de fin : #/
  • Peuvent s'étendre sur plusieurs lignes
  • Ne peuvent pas être imbriqués
  • Supprimés avant tout autre traitement

Imbrication

Tous les éléments de syntaxe peuvent être imbriqués les uns dans les autres à profondeur arbitraire :

{option1|[<, > sub1|sub2|sub3]|option3}

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

#set %var% = {a|[b|c]}

Post-traitement

Le moteur applique une correction automatique du texte après la génération :

  1. Protège les URLs, e-mails, domaines, décimales et abréviations de la capitalisation
  2. Supprime les espaces et tabulations en double
  3. Supprime les espaces avant la ponctuation (, . ! ?)
  4. Ajoute un espace après la ponctuation si manquant
  5. Met en majuscule la première lettre de la sortie (en ignorant les balises HTML)
  6. Met en majuscule après la ponctuation de fin de phrase
  7. Met en majuscule après les balises HTML de niveau bloc
  8. Met en majuscule après les sauts de ligne
  9. Restaure les marqueurs protégés

Résumé de la syntaxe

FonctionnalitéSyntaxeComportement
Énumération{a|b|c}Choisit une option aléatoire
Permutation[a|b|c]Choisit N, mélange, joint
Séparateur[<sep> a|b|c]Permutation avec séparateur uniforme
Sep par élément[<,> a|b <x>|c]Permutation avec séparateurs personnalisés
Combinaisons[<config> a|b|c]Permutation avec nombre min/max
Variable#set %var% = valSubstitution réutilisable
Include#include "slug"Intègre un autre modèle
Commentaire/#...#/Supprimé de la sortie

La syntaxe est compatible avec le standard Generating The Web (GTW).