Content ne stocke que ce que déclare le schéma d’une collection : voici donc la
liste complète — un champ non déclaré est écarté silencieusement, avant même que
la barre latérale ou la recherche le voie.

## Ce que vous écrivez

| Champ          | Type       | Ce qu’il fait                                                        |
| :------------- | :--------- | :------------------------------------------------------------------- |
| `title`        | `string`   | Rendu comme le `<h1>` de la page, et son titre SEO et social          |
| `description`  | `string`   | Le résumé — barre latérale, cartes, image OG, `llms.txt`              |
| `icon`         | `string`   | Affiché à côté de l’entrée dans la barre latérale, la rangée et les cartes |
| `navigation`   | `boolean`  | `false` masque la page dans la navigation                             |
| `layout`       | `string`   | `landing` rend la page sans la mise en page documentaire              |
| `redirectFrom` | `string[]` | Anciennes URL de cette page — voir [Déplacer une page](/guides/move-a-page) |
| `date`         | `string`   | La date de cette page, pour le flux                                   |

`title` et `description` sont les deux dont la compilation signale l’absence.
Aucun ne casse une page, et tous deux dégradent silencieusement le sommaire, la
carte sociale et `llms.txt`.

::callout{type="tip" title="Pas de H1 dans le corps"}
`title` est rendu comme titre. Un titre `#` en début de fichier est le deuxième
`<h1>` de la page.
::

## Les réglages de la page

Huit champs de plus, chacun désactivant une pièce de ce que duxt
dessine autour d’une page. C’est ainsi qu’une page dit à quoi elle *sert* : une
référence d’API qui veut toute la largeur, une page légale sans « Cette page
vous a-t-elle été utile ? », une ébauche qui ne doit pas apparaître dans la
recherche.

| Champ        | Type                      | Par défaut           | Ce qu’il contrôle                                   |
| :----------- | :------------------------ | :------------------- | :--------------------------------------------------- |
| `toc`        | `false` \| `{ maxDepth }` | activé, jusqu’à `h3` | Le sommaire, et jusqu’où il descend                 |
| `breadcrumb` | `boolean`                 | `duxt.breadcrumb`    | Le fil au-dessus du titre                           |
| `prevNext`   | `boolean`                 | `true`               | Le couple précédent/suivant sous l’article          |
| `feedback`   | `boolean`                 | `true`               | La ligne « Cette page vous a-t-elle été utile ? »   |
| `pageInfo`   | `boolean`                 | `true`               | Lien d’édition, dernière mise à jour, contributeurs |
| `copyPage`   | `boolean`                 | `true`               | Copier la page, et le menu de remise à un modèle    |
| `fullWidth`  | `boolean`                 | `false`              | `true` retire la limite de largeur de lecture       |
| `search`     | `boolean`                 | `true`               | `false` retire la page de la recherche              |

```md
---
title: Conditions d’utilisation
feedback: false
prevNext: false
search: false
---
```

Ils **se combinent, et aucun n’en implique un autre**. `fullWidth: true` retire
la justification de lecture et rien d’autre — la colonne du sommaire et le bloc
de provenance restent à moins d’être désactivés eux aussi — et `copyPage: false`
laisse le bloc de provenance tranquille. Une page qui n’en définit aucun
s’affiche exactement comme avant.

`breadcrumb` est celui qui a derrière lui un interrupteur valable pour tout le
site, `duxt.breadcrumb`. La page l’emporte partout où elle se prononce : un site
qui a masqué le fil partout peut le remettre sur la seule page dont le fil est
justement l’intérêt.

### Jusqu’où descend le sommaire

`toc: false` supprime la colonne. La forme objet fixe le titre le plus profond
qu’elle liste, écrit comme un niveau de titre — la liste commence toujours à
`h2`, et `h3` est la valeur par défaut.

```md
---
title: Configuration
toc:
  maxDepth: 4
---
```

`maxDepth` accepte de `2` à `6`. Toute autre valeur retombe sur la valeur par
défaut au lieu de vider la colonne : il n’y a pas de `h7`, et `h1` est le titre.

### Ce que fait `search: false`, et ce qu’il ne fait pas

Il retire la page de toutes les surfaces que duxt offre pour *trouver* quelque
chose : la boîte de recherche, son repli sur les approximations, l’outil MCP
`search_docs`, ainsi que `llms.txt` et `llms-full.txt`.

Il ne change **rien à l’adresse de la page**. L’URL, la canonique, l’entrée du
sitemap et les métadonnées robots sont intactes, la page est rendue comme
toujours, et le `read_page` de MCP répond encore pour elle. La page devient
introuvable, pas dépubliée. Pour tenir une page hors de l’arborescence de
navigation, c’est `navigation: false` ; pour la tenir hors d’un moteur de
recherche, c’est l’affaire du robot d’indexation et non celle de ce champ.

::callout{type="info" title="Une page ne peut pas masquer la barre latérale"}
Il n’y a délibérément aucun champ pour cela. `fullWidth` conserve l’en-tête et la
navigation de gauche, car une page qui aurait supprimé la sortie est une page où
le lecteur reste coincé. `layout: landing` reste la seule échappatoire explicite
à toute la coque de la documentation.
::

## Ce que la compilation remplit

| Champ          | Rempli par                  | Contient                                       |
| :------------- | :-------------------------- | :--------------------------------------------- |
| `lastUpdated`  | le module git-meta          | Le dernier commit ayant touché le fichier       |
| `contributors` | le module git-meta          | Nom, nombre de commits et pseudo, par auteur    |
| `rawbody`      | le schéma de la collection  | Le Markdown tel qu’écrit                        |
| `sitemap`      | l’intégration sitemap       | Ce qui met la page dans `/sitemap.xml`          |

En écrire un à la main ne sert à rien : la compilation les écrase. Les deux
champs git ont besoin d’un historique réel, une source distante a donc besoin de
`history: true` — voir la [référence des sources](/reference/sources).

## Le nom du fichier porte deux choses de plus

- **Un préfixe numérique ordonne l’arborescence** et disparaît de l’URL :
  `3.guides/2.deploy.md` est servi sur `/guides/deploy`. Réordonner ne déplace
  jamais une URL.
- **`.draft.md` est un brouillon.** Il est servi dans le serveur de
  développement et absent de la compilation. Il n’y a pas de `draft: true`, car
  le contenu d’une collection est déclaré avant qu’un fichier ait été lu — voir
  [Collections](/concepts/collections).