Composants de contenu
Les composants de contenu rendent du texte et de la prose. Ils couvrent le texte enrichi et le markdown, les blocs de code avec coloration syntaxique, les accordéons repliables, les encarts stylisés, les citations, une table des matières générée automatiquement et l'interface de recherche au niveau de la page. Tous les composants de contenu prennent en charge la substitution de variables dans leur content ($record.*, $vars.*, key) et acceptent l'ensemble partagé props, ainsi que les modules visibility, responsive et i18n.
components:
- type: text
element: h1
content: Getting Started
- type: text
content: '$record.body'
props: { format: markdown }
- type: alert
props: { variant: info, dismissible: true }
content: 'Heads up — this is a callout.'text
Le composant de contenu principal. Rend du texte inline, un élément sémantique (titre, paragraphe, citation) ou du markdown complet. Le même type text couvre les titres, paragraphes et citations via son element/props.
| Propriété | Description |
|---|---|
content |
Source texte ou markdown (prend en charge $record.*, $vars.*, key). |
element |
Élément sémantique : h1–h6, p, span, label, pre, kbd, blockquote, code. Par défaut p. |
props.format |
Définir sur markdown pour rendre content comme HTML assaini (titres, gras, italique, liens, images, listes imbriquées). |
required |
Lorsque element: label, ajoute un indicateur d'obligation (*) après le texte du libellé. |
props |
Attributs HTML supplémentaires (p. ex. className). |
element: code rend un simple élément <code> inline — il n'applique pas de coloration
syntaxique. Pour un bloc coloré avec langue, numéros de ligne et bouton de copie, utilisez le type
code.
La sortie markdown est assainie pour prévenir les attaques XSS (pas de balises <script> ni d'attributs gestionnaires d'événements). Les blocs de code incluent un bouton de copie vers le presse-papiers.
code
Un bloc de code autonome, avec coloration syntaxique. Contrairement à text avec element: code —
qui rend un simple <code> inline — ce type colore la source, numérote les lignes et ajoute un
bouton de copie.
| Propriété | Description |
|---|---|
content |
La source du code. |
props.language |
Langue pour la coloration syntaxique (p. ex. ts, yaml, bash). |
props.lineNumbers |
Afficher les numéros de ligne à côté du code. |
props |
Attributs HTML supplémentaires. |
Cadres, sortie et bouton de copie
Un bloc de code nu laisse le lecteur deviner : est-ce un fichier à enregistrer, ou
une commande à exécuter ? Ces propriétés dessinent un cadre autour du bloc pour y
répondre, et contrôlent ce que le bouton de copie place dans le presse-papiers.
Elles se déclarent à la racine du composant, à côté de props.
| Propriété | Description |
|---|---|
codeFrame |
Cadre autour du bloc : none (nu), file (en-tête avec nom de fichier) ou terminal (en-tête de session shell). Déduit si tu l'omets. |
filename |
Le fichier auquel appartient l'extrait, affiché dans l'en-tête. Devient aussi le nom accessible du bloc. |
terminalLabel |
Libellé de l'en-tête terminal (par défaut terminal). |
output |
Ce que la commande affiche, rendu comme un second bloc sous la commande, dans le même cadre. |
copy |
Afficher le bouton de copie vers le presse-papiers. Vaut true par défaut. |
copyLabel |
Libellé et nom accessible du bouton de copie (par défaut Copy). |
copiedLabel |
Libellé affiché brièvement après une copie réussie (par défaut Copied). |
Le cadre est résolu dans cet ordre, la première correspondance l'emportant :
- un
codeFrameexplicite — y comprisnone, qui supprime le cadre qui serait sinon déduit ; - sinon un
filenameest présent, donc le cadre estfile; - sinon un
outputest présent, donc le cadre estterminal(seule une commande produit une sortie) ; - sinon
none.
Les cas courants ne demandent donc qu'une seule propriété, pas deux :
components:
# Un fichier. `filename` seul suffit à obtenir le cadre de fichier.
- type: code
props:
language: yaml
filename: hello-world.yaml
content: |
name: hello-world
pages:
- name: home
path: /
# Une commande et ce qu'elle affiche. `output` seul suffit à obtenir le cadre terminal.
- type: code
props:
language: bash
content: sovrium init hello-world
output: |
Created hello-world.yaml
Run sovrium start hello-world.yaml to boot it.Le bouton de copie copie la commande seule. La sortie output et l'en-tête de
nom de fichier sont tous deux exclus : coller dans un shell exécute une seule
commande, et coller un fichier de configuration nommé donne une configuration
valide plutôt qu'une configuration précédée de son propre nom. Aucun symbole
d'invite n'est rendu dans le bloc pour la même raison : un $ décoratif finirait
dans le presse-papiers.
toc
Génère automatiquement une table des matières à partir de la hiérarchie de titres de la page. Cliquer sur un lien fait défiler en douceur jusqu'à l'ancre du titre ; la section active est mise en évidence selon la position de défilement.
| Propriété | Description |
|---|---|
props.sticky |
Définir sur true pour garder la table des matières fixée à la fenêtre lors du défilement. |
props |
Attributs HTML supplémentaires (p. ex. className). |
accordion
Sections de contenu repliables, chacune avec un déclencheur de résumé et un panneau de détail.
| Propriété | Description |
|---|---|
children |
Éléments d'accordéon (chacun avec un libellé de résumé et un contenu de détail). |
props.mode |
single replie les autres sections quand l'une s'ouvre ; multiple permet d'en ouvrir plusieurs à la fois. |
props.defaultOpen |
Définir sur true pour rendre une section développée au chargement de la page. |
props |
Attributs HTML supplémentaires. |
blockquote
Un bloc de citation stylisé (text avec element: blockquote rend la même balise, sans style). Les citations imbriquées sont rendues avec une indentation croissante.
| Propriété | Description |
|---|---|
content |
Le texte cité. |
props.cite |
URL de la source de citation. |
props |
Attributs HTML supplémentaires. |
alert
Un bloc d'encart stylisé pour mettre en évidence des informations.
| Propriété | Description |
|---|---|
content |
Le message d'alerte (prend en charge la substitution). |
props.variant |
Style visuel : info, warning, error, ou success — chacun sélectionne automatiquement une icône et une couleur appropriées. |
props.dismissible |
Définir sur true pour rendre un bouton de fermeture qui masque l'alerte. |
props |
Attributs HTML supplémentaires. |
searchInput
Un contrôle de champ de recherche au niveau de la page qui pilote le filtrage côté client d'une liste ou d'une table liée. (La configuration du moteur plein texte — indexation, poids, recherche publique — se trouve dans la section Recherche ; ceci est le bloc de construction de l'interface.)
| Propriété | Description |
|---|---|
props.placeholder |
Texte indicatif affiché dans le champ de recherche. |
props.debounceMs |
Délai d'anti-rebond avant le déclenchement de la recherche (les résultats se mettent à jour en direct après le délai). |
props.minLength |
Longueur minimale de requête avant la recherche (empêche les recherches vides/courtes). |
dataSource |
Liaison optionnelle lorsque le champ filtre une source de données en mode search. |
pageSearch
Une expérience de recherche à portée de page composée d'un champ et d'une région de résultats, liée à une table consultable. À utiliser pour le filtrage d'enregistrements au sein de la page.
| Propriété | Description |
|---|---|
dataSource |
Liaison de table en mode search (searchFields, debounce, maxResults). |
props.placeholder |
Texte indicatif pour le champ de recherche. |
children |
Composants optionnels de modèle de résultat. |
Contenu markdown vs. pages markdown. Un composant text avec props.format: markdown rend un fragment de markdown inline. Pour rendre une page entière à partir d'un fichier markdown (avec frontmatter, mise en page et table des matières), utilisez la propriété markdown au niveau de la page — voir Présentation des pages → Pages markdown.
Pages connexes
- Présentation des pages — structure de page et substitution de variables.
- Composants de mise en page — conteneurs, grilles, cartes.
- Composants média — images, vidéo, icônes, intégrations.
- Recherche — moteur de recherche plein texte et recherche publique.
- Composants de recherche — blocs de construction de l'interface de recherche (dans la section Recherche).
- SEO et métadonnées — en-tête de document et données structurées.
Dernière mise à jour 11 août 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.