Migration von Astro Starlight zu docmd
Starlight ist ein auf Astro basierendes Dokumentations-Theme. docmd bietet eine ähnliche Zero-JavaScript-by-default-Erfahrung. Es eliminiert die Notwendigkeit, ein vollständiges Web-Framework zu konfigurieren, und reduziert so die Lernkurve.
Schritt 1: Migrations-Engine ausführen
Führen Sie den folgenden Befehl im Stammverzeichnis Ihres bestehenden Starlight-Projekts aus:
npx @docmd/core migrate --starlight
Was automatisch passiert
- Backup: Ihr gesamtes Projekt wird sicher in ein neues Verzeichnis
starlight-backup/verschoben. - Content-Migration: Starlight bewahrt Dokumentation in
src/content/docs/. Die Migrations-Engine extrahiert dieses Verzeichnis und verschiebt dessen Inhalt in dendocs/-Ordner im Stammverzeichnis. - Config-Generierung: Eine
docmd.config.jsonwird generiert, die dentitleIhrer Site aus der Starlight-Integration innerhalb vonastro.config.mjsextrahiert.
Schritt 2: Setup testen
Sobald der Befehl abgeschlossen ist, können Sie Ihre Inhalte in docmd in der Vorschau anzeigen:
npx @docmd/core dev
Ihre Markdown-Dateien werden kompiliert, aber Ihre Navigations-Sidebar wird leer sein.
Schritt 3: Manuelle Konfiguration
1. Navigations-Einrichtung
Starlight definiert Navigation in astro.config.mjs über das sidebar-Array.
Erforderliche Aktion: Erstellen Sie eine navigation.json in Ihrem neuen docs/-Ordner.
sidebar: [
{
"label": "Leitfäden",
"items": [
{ "label": "Einrichtung", "link": "/guides/setup/" }
]
}
]
[
{
"title": "Leitfäden",
"collapsible": true,
"children": [
{ "title": "Einrichtung", "path": "/guides/setup" }
]
}
]
2. Astro-Komponenten ersetzen (MDX/Markdoc)
Starlight verwendet Astro-Komponenten, die über MDX oder Markdoc eingebettet werden. Da docmd auf reiner Markdown-Syntax basiert, müssen diese konvertiert werden.
Erforderliche Aktion: Ersetzen Sie Astro-Komponenten durch docmd Container.
Beispiel: Tabs konvertieren
Starlight:
import { Tabs, TabItem } from '@astrojs/starlight/components';
<Tabs>
<TabItem label="Sterne">Sirius, Vega, Beteigeuze</TabItem>
<TabItem label="Monde">Io, Europa, Ganymed</TabItem>
</Tabs>
docmd:
::: tabs
== tab "Sterne"
Sirius, Vega, Beteigeuze
== tab "Monde"
Io, Europa, Ganymed
:::
Beispiel: Asides (Admonitions) konvertieren
Starlight:
:::note[Optionaler Titel]
Etwas Notiz-Inhalt.
:::
docmd:
::: note "Optionaler Titel"
Etwas Notiz-Inhalt.
:::
3. Frontmatter-Mapping
Starlight hat strikte Frontmatter-Typisierung über Astro-Content-Collections. docmd-Frontmatter ist einfacher.
Wenn Sie hero oder banner-Frontmatter-Eigenschaften in Starlight für Landing-Pages verwendet haben, ersetzen Sie diese durch docmds Hero-Sections, die direkt im Markdown-Body geschrieben werden.
Nächste Schritte
- Erkunden Sie docmds eingebautes Search-Plugin. Starlight verwendet Pagefind, während docmd einen hochoptimierten lokalen Suchindexer nativ mitliefert.