Shortcodes
Les shortcodes sont les liens dans le corps entre les pièces de contenu. Le corps d'une page ou d'un post peut pointer vers un block, un stack, un document ou un formulaire, et le builder statique résout chaque référence à la construction, en insérant le vrai rendu, jamais un espace réservé. Quatre shortcodes existent ; tout le reste (listes de pages, contenus liés, galeries, vidéos) est un type de block utilisé via la famille {{block:name}} plutôt qu'une syntaxe différente.
Les quatre familles
{{block:name}}: un block réutilisable. Rend la sortie du template du block nommé exactement là où il se trouve dans le corps. Les noms de block sont uniques par langue ; le contenu d'une langue référence l'édition de sa propre langue, avec repli sur une copie sans langue lorsque l'édition de cette langue est manquante.{{stack:name}}: un stack réutilisable. Les stacks se résolvent complètement : les stacks imbriqués se résolvent récursivement (avec le garde-fou de cycle/profondeur), puis l'enveloppe de mise en page du stack s'applique, de sorte qu'un stack placé se lit comme une section entière dans le corps.{{document:slug}}: un lien de document publié : recherché depuis le cache de build, rendu comme le lien vers/documents/<slug>(le point de terminaison de téléchargement suivi par le CMS que le proxy de votre hôte achemine vers le CMS).[form:slug], un formulaire intégré : rendu en ligne lorsque le slug est actif à la construction ; retombe sur un iframe hébergé par le CMS lorsque seulcms_base_urlest configuré ; sinon une erreur de build.
Où les shortcodes s'exécutent
- Uniquement dans le texte du corps : les corps de pages et de posts (et les corps de landing pages partagent les mêmes familles). Les titres, slugs, libellés de menu et URL ne traitent pas les shortcodes.
- Pas de logique au niveau template dans les shortcodes : pas de conditions ni de boucles à cette couche. Le rendu conditionnel vit dans les blocks (chacun son propre fichier TT), pas dans la syntaxe des shortcodes.
- Les quatre familles se résolvent dans la même passe de rendu dans n'importe quel template de thème : y compris les corps raw et landing, qui peuvent être assemblés à partir du même matériau de construction.
Les références cassées sont des erreurs de build
Un shortcode pointant vers quelque chose qui n'existe pas (un nom de block/stack sans édition correspondante, un slug de document manquant ou non publié, un formulaire inactif) laisse un commentaire marqueur HTML dans la page construite (<!-- form:<slug> not found --> et compagnie) et est enregistré comme erreur de build nommant le shortcode et la raison. Le garde de promotion voit cela comme n'importe quel échec pré-promotion, donc une référence cassée ne peut pas être livrée en silence ; corrigez la référence (ou publiez/restaurez la cible) et reconstruisez.
Choisir entre eux
- Blocks : l'atome pour la composition de contenu (hero, CTA, citation, galerie…) ; référencez-en un là où son instance unique appartient.
- Stacks : une section ordonnée complète en une seule référence (rangées de fonctionnalités partagées, groupes de CTA permanents, sections de campagne).
- Documents : le chemin de téléchargement suivi ; parce que le remplacement conserve le slug, les références construites survivent aux mises à jour.
- Forms : la surface de soumission ; avec
cms_base_urldéfini, l'intégration fonctionne même lorsque la page est hébergée loin du CMS.
Ils s'imbriquent librement : un block peut vivre dans un stack dans un corps, et un formulaire peut se trouver dans un block ; le builder résout tout ce qui apparaît dans le contenu actif.