# Bonjour le monde

> Un article d'exemple qui garde la collection typée et la compilation honnête. Remplacez-le par la première chose que vous voulez vraiment dire.

- **Published:** 2026-09-06
- **Reading time:** 1 min
- **Tags:** meta
- **URL:** https://wilfriedago.me/fr/notes/hello-world

Chaque collection conserve une entrée d'exemple par langue, afin que son schéma
reste vérifié et que le site compile sur un dépôt neuf. Supprimez ce fichier dès
que vous avez de vrais articles à publier.

## Le frontmatter est validé

Les schémas vivent dans `velite.config.ts`. `title`, `date`, `slug` et `excerpt`
sont obligatoires ; la compilation échoue bruyamment sur un champ manquant ou mal
formé — c'est précisément le but.

## Champs optionnels

`liveUrl`, `liveLabel`, `repo` et `pypiUrl` attachent des liens à un article. `draft: true` masque une entrée sans la supprimer.

## Le code est coloré à la compilation

Shiki s'exécute dans le pipeline de contenu : un extrait arrive donc déjà coloré,
sans qu'aucun moteur de coloration n'atteigne le navigateur.

```ts
export function localeFrom(path: string): string {
  const segments = path.replaceAll('\\', '/').split('/')
  const index = segments.findLastIndex((segment) => COLLECTION_DIRS.has(segment))

  if (index < 1) {
    throw new Error(`Cannot infer a locale from ${path}`)
  }

  return segments[index - 1]
}
```

Les deux palettes sont compilées dans le balisage, et le thème choisit laquelle
s'applique.
