Collections et markdown
Trois propriétés transforment une définition de page unique en plusieurs routes, ou remplacent l'arbre de composants par de la prose : collection se déploie sur les enregistrements d'une table, markdown rend un corps depuis un fichier, et contentDir se déploie sur un répertoire de fichiers.
collection
Un bloc collection génère une route par enregistrement. Le path de la page doit porter un segment dynamique, et slugField nomme le champ dont la valeur le remplit.
| Propriété | Description |
|---|---|
table |
Obligatoire. Table à partir de laquelle générer les pages. |
slugField |
Obligatoire. Champ dont la valeur devient le segment d'URL. |
filter |
Conditions limitant quels enregistrements génèrent une page. |
pages:
- name: Blog Post
path: /blog/:slug
collection:
table: posts
slugField: slug
filter:
- { field: published, operator: eq, value: true }
rss: { limit: 20 }
components:
- { type: text, tag: h1, content: '$record.title' }
- { type: text, content: '$record.body', props: { format: markdown } }
L'enregistrement généré est exposé comme $record.* à tout l'arbre, meta compris — le SEO par enregistrement est donc gratuit. Une URL ne correspondant à aucun enregistrement renvoie 404.
markdown
Rend le corps de la page depuis du markdown plutôt que depuis des composants.
| Propriété | Description |
|---|---|
content |
Chaîne markdown inline. |
file |
Chemin vers un fichier markdown, résolu depuis la racine du projet. Exclusif avec content. |
layout |
Style d'encadrement : prose (défaut), docs, full ou none. |
toc |
Table des matières — true, ou { maxDepth, position }. |
toc.maxDepth va de 1 à 6 ; toc.position vaut top ou sidebar.
pages:
- name: Docs Home
path: /docs
markdown:
file: content/docs/home.md
layout: docs
toc: { maxDepth: 3, position: sidebar }
Le frontmatter YAML placé entre les délimiteurs --- est analysé et exposé comme $frontmatter.*, utilisable dans meta et les propriétés frères. Le HTML markdown rendu est assaini, de façon cohérente avec les composants de contenu text et alert.
contentDir
contentDir est une propriété de page. Elle déploie une définition de page unique sur chaque fichier markdown d'un répertoire et dérive une barre latérale de navigation depuis leur frontmatter — c'est ainsi que cette documentation est construite.
| Propriété | Description |
|---|---|
directory |
Obligatoire. Répertoire contenant les fichiers markdown. |
slugFrom |
Obligatoire. Dérive le slug depuis filename ou filepath. |
include |
Motif glob filtrant les fichiers pris en compte, p. ex. *.md. |
index |
Slug servi au chemin de base de la collection, ce qui en fait la porte d'entrée de la section. |
sort |
{ field, order } — ordonne les entrées par un champ de frontmatter, asc ou desc. |
filter |
Conditions clé/valeur sur le frontmatter restreignant quels fichiers deviennent des pages. |
nav |
Barre latérale dérivée de la collection (voir ci-dessous). |
editUrl |
Modèle de lien « modifier cette page ». {lang} et {slug} sont interpolés. |
issueUrl |
Modèle de lien « signaler un problème ». |
contributionNote |
Texte rendu dans le pied de page de contribution. |
nav accepte enabled, groupBy (la clé de frontmatter qui regroupe les articles en sections de barre latérale), labelFrom (la clé fournissant le libellé de chaque lien), ainsi que groupLabels, groupIcons, collapsed et tabs pour la présentation.
pages:
- name: docs
path: /docs/:slug
contentDir:
directory: content/docs
slugFrom: filename
include: '*.md'
index: introduction
sort: { field: order, order: asc }
nav: { enabled: true, groupBy: section, labelFrom: sidebarLabel }
markdown:
layout: docs
toc: { maxDepth: 3, position: sidebar }
components:
- { type: container, element: header }
contentDir n'est pas une source de composant. Elle se place à côté de components sur la page, pas à l'intérieur d'un composant. Le bloc markdown de la page met ensuite en forme chaque article généré — une seule décision de layout et de toc couvre tout le répertoire.
Pages connexes
- Présentation des pages — le tableau complet des propriétés de page.
- Routage et chemins — le segment dynamique qu'une collection remplit.
- SEO et métadonnées — métadonnées par enregistrement et par article.
- Composants de contenu — les fragments markdown inline.
- llms.txt — l'index lisible par machine dérivé des répertoires de contenu.
Dernière mise à jour 27 juillet 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.