Inhaltsquellen
Markdown und MDX außerhalb von app/routes veröffentlichen und die Originaldatei als einzige Quelle behalten.
Auf dieser Seite
Nutze Inhaltsquellen, wenn dein Markdown bereits an einer anderen Stelle im Repository liegt: ADRs, Paketanleitungen, Änderungsprotokolle oder gemeinsame Dokumentation. Ardo erzeugt beim Build eine schreibgeschützte Routensicht; die Originaldatei bleibt die maßgebliche Quelle.
Ein Verzeichnis zuordnen
import { defineArdoConfig } from "ardo/config"
export default defineArdoConfig({
title: "Workspace Docs",
content: [{ from: "../../adr", to: "decisions" }],
})
Aus ../../adr/0001-routing.md wird /decisions/0001-routing. Vorhandenes Frontmatter bleibt erhalten. Andernfalls leitet Ardo den Titel aus der ersten Überschrift oder dem Dateinamen ab und nutzt einen numerischen Dateinamenpräfix für die Reihenfolge in der Seitenleiste.
Einbindung in den Build
Zugeordnetes Markdown und MDX wird zu gewöhnlichen generierten Routen. Es fließt in Seitenleiste, Abschnittssuche, Sitemap, LLM-Textexporte, Weiterleitungen, interne Linkprüfung und Frontmatter-Validierung ein.
Grenze für generierte Dateien
Ardo schreibt die Dateien in das gewählte to-Verzeichnis und kennzeichnet es als generiert. Bearbeite die Originalquelle, niemals die daraus erzeugte Route. Das Plugin löscht kein nicht leeres, von Hand angelegtes Zielverzeichnis. Verwende deshalb einen eigenen Präfix wie decisions/.
Bewusste Grenzen
Inhaltsquellen laden keine entfernten URLs, ersetzen kein CMS und wandeln keine beliebigen Dateitypen um. Sie ordnen lokale Dateien zu. Schema-basierte Sammlungen ergänzen Validierung und typisierte Datensätze.
Schema-basierte Sammlungen
Nutze collections, wenn dieselben lokalen Markdown-Dateien sowohl als Routen erscheinen als auch einer eigenen React-Route als typisierte Build-Daten zur Verfügung stehen sollen:
import { defineArdoConfig } from "ardo/config"
import { defineCollection } from "ardo/vite"
const recipes = defineCollection<{ title: string }>({
from: "../../recipes",
to: "recipes",
schema: (data) => ({ title: String(data.title) }),
})
export default defineArdoConfig({ title: "Docs", collections: { recipes } })
Importiere getCollection<T>() aus virtual:ardo/collections in einer eigenen Route, um typisierte generierte Datensätze zu lesen:
import { getCollection } from "virtual:ardo/collections"
const recipes = getCollection<{ title: string }>("recipes")
Sammlungen bleiben lokal und statisch: Das Schema läuft beim Build; die generierten Seiten durchlaufen anschließend die üblichen Abläufe für Seitenleiste, Suche, Sitemap, Weiterleitungen und LLM-Exporte. Quellpfade sind relativ zum Projekt. Das virtuelle Modul legt daher keine absoluten Dateisystempfade des Autors offen.
Ergänze diese Optionen im versionsgleichen Basic-Beispiel. Die verfassten Dateien bleiben maßgeblich: Der Build erzeugt daraus die Seiten unter /recipes/*; eine eigene React-Route kann dieselben Datensätze anzeigen.