# Hallo Welt

> Ein Platzhalter-Beitrag, der die Sammlung typisiert und den Build ehrlich hält. Ersetze ihn durch das Erste, was du wirklich sagen willst.

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

Jede Sammlung behält pro Sprache einen Beispieleintrag, damit ihr Schema geprüft
bleibt und die Seite in einem frischen Checkout baut. Lösche diese Datei, sobald
du echte Texte veröffentlichst.

## Frontmatter wird validiert

Die Schemata liegen in `velite.config.ts`. `title`, `date`, `slug` und `excerpt`
sind Pflicht; der Build schlägt bei einem fehlenden oder fehlerhaften Feld laut
fehl — genau darum geht es.

## Optionale Felder

`liveUrl`, `liveLabel`, `repo` und `pypiUrl` hängen Links an einen Beitrag.
`draft: true` blendet einen Eintrag aus, ohne ihn zu löschen.

## Code wird beim Build hervorgehoben

Shiki läuft in der Content-Pipeline: ein Beispiel kommt also schon farbig an,
ohne dass ein Highlighter im Browser landet.

```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]
}
```

Beide Paletten stecken im Markup, und das Thema entscheidet, welche gilt.
