Skip to main content
Voir en Markdown

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 }

Pages connexes

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.

Construit avec Sovrium