Fait avec Chinaski

Blocs

Un block est un fragment réutilisable de contenu structuré que vous incorporez dans n'importe quelle page ou post avec un seul shortcode : {{block:name​}}. Lors de la construction du site, chaque shortcode est remplacé par le HTML rendu du block ; modifiez le block une fois, et chaque page qui l'incorpore change.

Comment fonctionne l'incorporation

Dans l'éditeur de corps de n'importe quelle page ou post, tapez :

{{block:my-block-name​}}
  • Le nom doit correspondre au nom Internal Name d'un block publié, dans la même langue que la page.
  • Un block non publié est silencieusement ignoré : le placeholder est retiré de la sortie plutôt que rendu.
  • Le même block peut être incorporé plusieurs fois dans un même corps : chaque emplacement le rend à l'identique.
  • Pour savoir où un block est utilisé, ouvrez-le dans l'admin et consultez sa vue d'utilisation, qui liste chaque page et post dont le corps le mentionne.

Types de blocks simples

Ces types ne nécessitent pas de JSON, juste des champs plats :

Type Idéal pour Champs clés
cta Section d'appel à l'action heading, subheading, libellé du bouton, URL du bouton
image Image autonome avec légende URL de l'image, texte alternatif, légende
quote Citation en exergue texte de la citation, attribution, libellé
hero Bannière pleine largeur heading, subheading, libellé du bouton, URL du bouton, image
testimonial Témoignage client texte de la citation, attribution, avatar, libellé
stat Statistique unique de grande taille heading (le chiffre), subheading (le libellé)
promo Image + texte en deux colonnes image, heading, texte du corps, bouton
embed Iframe / embed tiers corps HTML brut, légende
video Vidéo incorporée avec poster URL d'embed, heading, légende, image poster
form Formulaire de contact heading, subheading, libellé d'envoi, URL d'action
newsletter Bande d'inscription par email heading, subheading, libellé du bouton
audio Lecteur audio incorporé heading, URL du fichier audio
callout Encadré de note / avertissement / astuce heading, texte du corps, variante (info, warning, success, note)
code_block Exemple de code avec coloration syntaxique langage, libellé facultatif, texte du code
divider Ligne horizontale entre les sections aucun : style uniquement
heading Titre de section autonome texte du titre, niveau (h1 à h6), subheading facultatif
spacer Espace vertical entre les blocks aucun : la hauteur se règle via les contrôles d'apparence padding/marge
text Section de texte enrichi libre heading, texte du corps

Types de blocks structurés

Ils répètent des lignes de données stockées en JSON ; le formulaire d'admin de chaque type inclut un éditeur de lignes qui écrit le JSON pour vous :

Type Idéal pour Forme des données
accordion FAQ / sections pliables rangées répétées de title + body, rendues nativement (pas de JavaScript)
table Table de données une ligne d'en-tête plus des rangées de valeurs de cellules
columns Grille de fonctionnalités en 2, 3 ou 4 colonnes rangées répétées de heading, body, image facultative
gallery Grille d'images rangées répétées d'URL d'image, de texte alternatif, de légende facultative
button_group Rangée de boutons d'appel à l'action rangées répétées de libellé du bouton, URL, style facultatif ; variante de style du groupe
citations Liste de sources / références rangées répétées de texte de citation, URL facultative, id d'ancre
faq Section FAQ avec balisage SEO rangées répétées de question + réponse ; génère automatiquement les données Schema.org FAQPage
feature_grid Liste de fonctionnalités avec icônes rangées répétées d'icône (image ou glyphe), heading, body
grid Grille de mise en page en HTML personnalisé libre cellules HTML brut répétées ; nombre de colonnes et espacement
logo_bar Bande de logos de partenaires / clients rangées répétées d'image de logo, texte alternatif, URL de lien facultative
page_list Liste auto-liée des pages enfants d'une page une référence à une page parente : les cartes (titre, URL, description) sont générées à partir des données de page en direct lors de la construction, sans rangées manuelles
pricing_table Comparaison de plans / tarifs rangées répétées de niveaux : nom, prix, période, liste de fonctionnalités, bouton facultatif, indicateur « featured » facultatif
team Liste d'équipe / personnel rangées répétées de photo, nom, rôle, bio, liens facultatifs
timeline Historique chronologique ou feuille de route rangées répétées de date, title, body
schedule Horaire hebdomadaire récurrent (heures, horaires de service) plus exceptions datées rangées hebdomadaires répétées jour/heure/libellé, plus rangées d'exceptions datées répétées ; génère automatiquement les données Schema.org Event pour les exceptions à venir

Conventions de sécurité du texte : le HTML enrichi est accepté dans un ensemble précis de champs de corps : les corps de rangées d'accordion et de columns, les corps d'embed, le texte du corps de callout, les réponses de faq, les corps d'éléments de feature_grid, les cellules de grid, le texte du corps des blocks text et les corps d'événements de timeline. Tous les autres champs (titres, headings, URL d'images, légendes, libellés de boutons) sont échappés automatiquement.

Options d'apparence pour chaque block

Chaque block dispose de contrôles de style partagés appliqués comme styles en ligne sur son conteneur :

  • Couleur d'arrière-plan: une valeur hex, rgb ou hsl. Vous pouvez aussi y mettre un nom de classe utilitaire au lieu d'une couleur : cette chaîne est attachée comme classe CSS au conteneur à la place d'un style de fond.
  • Bordure: activer, définir une largeur, et remplacer la couleur de bordure.
  • Couleur du texte: appliquée aux éléments heading et body pour les types qui le prennent en charge.
  • Padding et marge: abréviation de style CSS autour de tout le block.

Travailler avec les blocks dans l'admin

Les blocks sont gérés depuis l'écran Blocks, une liste paginée groupée par type, avec pour chaque entrée son nom, sa langue, son statut de publication et sa date de dernière modification.

  • Les nouveaux blocks démarrent vides ; les erreurs lors de l'enregistrement sont affichées toutes d'un coup.
  • Blocks d'exemple : la page de liste peut construire un ensemble de départ (hero, CTA, promo, stat, quote et testimonial) pré-stylés et en anglais ; les blocks existants portant les mêmes noms sont laissés intacts.
  • Corbeille : supprimer un block l'envoie à la corbeille avec un lien d'annulation, donc les erreurs sont récupérables.
  • Le rapport d'utilisation montre où un block est référencé.
  • Les actions groupées opèrent sur jusqu'à 500 blocks sélectionnés : publier, dépublier, déplacer à la corbeille, dupliquer comme brouillons, changer le type du block (uniquement vers des types actuellement enregistrés), et d'autres. Toute modification déclenche globalement une construction du site.
  • Import : les blocks (et snippets) peuvent être importés via JSON ou CSV.

Lorsque vous modifiez un block, ses conteneurs de shortcodes sont reconstruits automatiquement afin que le site en ligne reflète la mise à jour.

Étendre : ajouter un nouveau type de block

Les nouveaux types de blocks sont une entrée de registre plus deux fichiers : enregistrez le slug du type sur l'écran Block Types (cette table est l'unique autorité sur les types valides), puis ajoutez un template builder et un formulaire d'admin pour le type. En écrivant le template builder, échappez les champs contrôlés par l'utilisateur comme d'habitude ; les seuls champs en HTML brut attendus sont les corps d'embed et les rangées body dans le contenu accordion/columns.

Stacks : séquences de blocks réutilisables

Pour les sections plus grandes qui se répètent d'une page à l'autre, les stacks permettent d'exporter/importer, dupliquer, voir où chacun est utilisé, et comparer des révisions, le tout depuis la section Stacks à côté de Blocks.

Également dans Blocs

Le block grid dispose des cellules libres dans une grille CSS : ses champs de colonnes, d'espacement et de nombre de cellules, et le rendu du HTML.

Utilisez le block feature_grid pour des fonctionnalités répétées avec icône, titre et corps facultatifs, avec ses champs et règles de sécurité HTML.

Utilisez le bloc pricing_table pour comparer des offres : titre et champs par formule (nom, prix, période, fonctionnalités, bouton, mise en avant).

Ajoutez un bloc team : une grille de personnes avec photo, nom, rôle, courte bio et liens optionnels, avec ses champs et l'ajout des membres.

Le block timeline : une liste ordonnée d'événements datés avec date, titre et texte, ses champs et le traitement du HTML.

Utilisez le block faq pour afficher des paires question-réponse avec données structurées FAQPage automatiques : champs, réponses en HTML, apparence.

Ajoutez une liste numérotée de sources en fin d'article avec le block citations : son titre, l'URL et le texte de chaque citation, et les ID d'ancre.

Le block form intègre un formulaire dans une page ou un post : son lien avec un Form via form_id, ses champs de titre et de bouton, et sa soumission.

Utilisez le block page_list pour lister les pages filles publiées d'une page parente en cards synchronisées au build, avec champs et règles HTML.

Utilisez le bloc embed pour intégrer du code tiers (iframe, carte, vidéo) dans une page, avec ses champs et l'avertissement HTML non échappé.

Ajoutez un bloc table : un tableau HTML simple avec en-têtes et lignes, ses champs, et quand l'utiliser plutôt que le bloc de tarifs.

Le block schedule : horaire hebdomadaire récurrent plus exceptions datées, avec données Schema.org Event automatiques.

Lisez ce site en