Files
rustycms/docs/content-from-file.md

28 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Content aus externer Datei (Typ `textOrRef`)
Felder vom Typ **`textOrRef`** können entweder den Text direkt enthalten oder eine **Dateireferenz** im Format `file:pfad`. So bleibt das JSON klein und der Inhalt liegt in einer normalen Datei (z. B. `.md`).
## Konvention
- **Im JSON** steht entweder:
- der **Text direkt** (inline), oder
- eine **Referenz** `file:dateiname` (z. B. `file:markdown-stellungnahme-guide.content.md`), relativ zum Entry-Verzeichnis.
- **Beim Lesen:** Ist der Wert eine `file:`-Referenz, lädt der Store den Inhalt aus der angegebenen Datei und liefert ihn als Feldwert. Ohne Referenz: liegt neben der Entry-Datei eine **`{slug}.content.md`**, wird deren Inhalt verwendet (Fallback).
- **Beim Schreiben:** Wird inline-Text gespeichert, schreibt der Store ihn in `{slug}.content.md` und speichert im JSON nur noch `file:{slug}.content.md`.
## Vorteile
- Markdown/HTML in normalen Dateien bearbeiten, ohne Escaping im JSON.
- Der **Pfad steht explizit im JSON** klar erkennbar, wo der Inhalt herkommt.
- Tooling (Editor, Linter, Git-Diffs) funktioniert zuverlässig.
## Beispiel (Markdown-Collection)
```
content/de/markdown/
markdown-stellungnahme-guide.json5 # content: "file:markdown-stellungnahme-guide.content.md"
markdown-stellungnahme-guide.content.md # der eigentliche Markdown-Text
```
Die Auflösung gilt für alle Collections, sobald ein Feld den Typ `textOrRef` hat (z. B. `content` bei Markdown).