Sections
Les sections sont des blocs de contenu réutilisables que les éditeurs peuvent insérer dans n’importe quel contenu via des commandes slash. Utilisez-les pour des modèles courants comme les appels à l’action, les témoignages, les grilles de fonctionnalités ou tout contenu apparaissant sur plusieurs pages.
Interroger les Sections
Section intitulée « Interroger les Sections »getSection
Section intitulée « getSection »Récupérer une seule section par son slug :
import { getSection } from "emdash";
const cta = await getSection("newsletter-cta");
if (cta) { console.log(cta.title); // "Newsletter CTA" console.log(cta.content); // PortableTextBlock[]}getSections
Section intitulée « getSections »Récupérer plusieurs sections avec des filtres optionnels :
import { getSections } from "emdash";
// Obtenir toutes les sectionsconst { items: all } = await getSections();
// Filtrer par sourceconst { items: themeSections } = await getSections({ source: "theme" });
// Rechercher par titre/mots-clésconst { items: results } = await getSections({ search: "newsletter" });getSections renvoie { items: Section[], nextCursor?: string } suivant le modèle de pagination standard.
Structure d’une Section
Section intitulée « Structure d’une Section »interface Section { id: string; slug: string; title: string; description?: string; keywords: string[]; content: PortableTextBlock[]; previewUrl?: string; source: "theme" | "user" | "import"; themeId?: string; createdAt: string; updatedAt: string;}Types de Source
Section intitulée « Types de Source »| Source | Description |
|---|---|
theme | Définie dans le fichier seed, gérée par le thème |
user | Créée par les éditeurs dans l’admin |
import | Importée depuis WordPress (blocs réutilisables) |
Utiliser les Sections dans le Contenu
Section intitulée « Utiliser les Sections dans le Contenu »Les éditeurs insèrent des sections en utilisant la commande slash /section dans l’éditeur de texte enrichi :
-
Tapez
/section(ou/pattern,/block,/template) -
Recherchez ou parcourez les sections disponibles
-
Cliquez pour insérer le contenu de la section à la position du curseur
Le contenu Portable Text de la section est copié dans le document. Cela signifie :
- Les modifications apportées à la section n’affectent pas le contenu déjà inséré
- Les éditeurs peuvent personnaliser le contenu inséré
- Le contenu reste autonome
Créer des Sections
Section intitulée « Créer des Sections »Dans l’Interface d’Administration
Section intitulée « Dans l’Interface d’Administration »-
Naviguez vers Sections dans la barre latérale de l’admin
-
Cliquez sur Nouvelle Section
-
Remplissez :
- Titre - Nom d’affichage de la section
- Slug - Identifiant URL (généré automatiquement à partir du titre)
- Description - Texte d’aide pour les éditeurs
-
Ajoutez du contenu en utilisant l’éditeur de texte enrichi
-
Optionnellement, définissez des mots-clés pour une découverte plus facile
Via les Fichiers Seed
Section intitulée « Via les Fichiers Seed »Incluez des sections dans le fichier seed de votre thème :
{ "sections": [ { "slug": "hero-centered", "title": "Centered Hero", "description": "Full-width hero with centered heading and CTA", "keywords": ["hero", "banner", "header"], "content": [ { "_type": "block", "style": "h1", "children": [{ "_type": "span", "text": "Bienvenue sur notre site" }] }, { "_type": "block", "children": [{ "_type": "span", "text": "Your tagline goes here." }] } ] }, { "slug": "newsletter-cta", "title": "Newsletter CTA", "keywords": ["newsletter", "subscribe", "email"], "content": [ { "_type": "block", "style": "h3", "children": [{ "_type": "span", "text": "Subscribe to our newsletter" }] } ] } ]}Via l’Import WordPress
Section intitulée « Via l’Import WordPress »Les blocs réutilisables WordPress (type de publication wp_block) sont automatiquement importés comme sections :
- La source est définie sur
"import" - Le contenu Gutenberg est converti en Portable Text
Rendu des Sections par Programmation
Section intitulée « Rendu des Sections par Programmation »Pour le contenu de section rendu côté serveur en dehors de l’éditeur :
---import { getSection } from "emdash";import { PortableText } from "emdash/ui";
const newsletter = await getSection("newsletter-cta");---
{newsletter && ( <aside class="cta-box"> <PortableText value={newsletter.content} /> </aside>)}Fonctionnalités de l’Interface d’Administration
Section intitulée « Fonctionnalités de l’Interface d’Administration »La bibliothèque des Sections (/_emdash/admin/sections) fournit :
- Vue en grille avec aperçus des sections
- Recherche par titre et mots-clés
- Filtre par source
- Copie rapide du slug dans le presse-papiers
- Édition du contenu et des métadonnées de la section
- Suppression avec confirmation (avertit pour les sections de thème)
Référence de l’API
Section intitulée « Référence de l’API »getSection(slug)
Section intitulée « getSection(slug) »Récupère une section par son slug.
Paramètres :
slug— L’identifiant unique de la section (chaîne de caractères)
Retourne : Promise<Section | null>
getSections(options?)
Section intitulée « getSections(options?) »Liste les sections avec des filtres optionnels.
Paramètres :
options.source— Filtrer par source :"theme","user", ou"import"options.search— Rechercher dans le titre et les mots-clés
Retourne : Promise<Section[]>
API REST
Section intitulée « API REST »Lister les Sections
Section intitulée « Lister les Sections »GET /_emdash/api/sectionsGET /_emdash/api/sections?source=themeGET /_emdash/api/sections?search=newsletterObtenir une Section
Section intitulée « Obtenir une Section »GET /_emdash/api/sections/newsletter-ctaCréer une Section
Section intitulée « Créer une Section »POST /_emdash/api/sectionsContent-Type: application/json
{ "slug": "my-section", "title": "My Section", "description": "Optional description", "keywords": ["keyword1", "keyword2"], "content": [...]}Mettre à Jour une Section
Section intitulée « Mettre à Jour une Section »PUT /_emdash/api/sections/my-sectionContent-Type: application/json
{ "title": "Updated Title", "content": [...]}Supprimer une Section
Section intitulée « Supprimer une Section »DELETE /_emdash/api/sections/my-sectionProchaines Étapes
Section intitulée « Prochaines Étapes »- Travailler avec le Contenu - Découvrir l’éditeur de texte enrichi
- Zones de Widgets - Pour un contenu dynamique synchronisé
- Import de Contenu - Importer des blocs réutilisables WordPress