Ein EmDash-Theme ist eine vollständige Astro-Site – Seiten, Layouts, Komponenten, Styles – verteilt über create-astro. Es enthält außerdem eine Seed-Datei, die die Datenbank beim ersten Start mit Collections, Feldern, Menüs, Redirects und Beispielinhalten befüllt.
Was ein Theme liefert
Ein Theme ist ein lauffähiges Astro-Projekt mit:
- Pages — Astro-Routen zum Rendern von Inhalten (Startseite, Blogposts, Archive usw.)
- Layouts — Gemeinsame HTML-Struktur
- Components — Wiederverwendbare UI-Elemente (Navigation, Cards, Footer)
- Styles — CSS oder Tailwind-Konfiguration
- Eine Seed-Datei — JSON, das dem CMS sagt, welche Content-Typen und Felder angelegt werden
Theme-Struktur
my-theme/
├── package.json # Theme-Metadaten + EmDash-Config
├── astro.config.mjs # Astro-Integration
├── src/
│ ├── live.config.ts # Live-Collections-Konfiguration
│ ├── pages/ # Astro-Routen
│ ├── layouts/ # Layout-Komponenten
│ └── components/ # UI-Komponenten
└── .emdash/
├── seed.json # Schema + Beispielinhalte
└── uploads/ # Optionale lokale Mediendateien
Wie Themes Sites bootstrappen
Wenn du eine Site aus einem Theme erstellst, passiert Folgendes:
create-astroerzeugt das Projekt aus der Vorlage- Du führst
npm installundnpm run devaus - Beim ersten Admin-Besuch läuft automatisch der Setup-Assistent
- Der Assistent wendet die Seed-Datei an und legt Collections, Menüs, Redirects und Inhalte an
- Die Site ist einsatzbereit
Für Nutzerinnen und Nutzer
Theme wählen, Assistent ausführen, loslegen. Keine Datenbankkenntnisse nötig.
Für Entwicklerinnen und Entwickler
Themes sind normale Astro-Projekte. Nach dem Scaffolding frei anpassbar.
Theme installieren
Nutze create-astro mit einer Vorlage:
npm create astro@latest -- --template @emdash-cms/template-blog
Community-Themes funktionieren über GitHub:
npm create astro@latest -- --template github:user/emdash-portfolio
Nach der Installation:
cd my-site
npm install
npm run dev
Öffne http://localhost:4321/_emdash/admin, um den Setup-Assistenten abzuschließen.
Der Setup-Assistent
Der Setup-Assistent startet automatisch beim ersten Admin-Besuch. Er:
- Fragt nach Site-Titel, Tagline und Admin-Zugangsdaten
- Bietet optional Beispielinhalte an
- Wendet die Seed-Datei auf die Datenbank an
- Leitet zum Admin-Dashboard weiter
┌────────────────────────────────────────────────────────┐
│ │
│ ◆ EmDash │
│ │
│ Willkommen auf deiner neuen Site │
│ │
│ Site-Titel: [Mein großartiger Blog ] │
│ Tagline: [Gedanken und Ideen ] │
│ │
│ Admin-E-Mail: [[email protected] ] │
│ Admin-Passwort: [•••••••••••• ] │
│ │
│ ☑ Beispielinhalte einbinden │
│ │
│ [Site erstellen →] │
│ │
│ Vorlage: Blog-Starter │
│ Erstellt: 2 Collections, 3 Seiten, 1 Post │
└────────────────────────────────────────────────────────┘
Offizielle Themes
EmDash liefert offizielle Starter-Themes, jeweils in Varianten für lokal (SQLite + Dateisystem) und Cloudflare (D1 + R2):
| Theme | Beschreibung | Einsatz |
|---|---|---|
@emdash-cms/template-blog | Schlichter Blog mit Posts, Seiten, Kategorien und Dark Mode | Persönliche Blogs, einfache Sites |
@emdash-cms/template-portfolio | Editorial-Portfolio mit Projekten, Serif-Schrift (Playfair Display), bildstarken Layouts | Freelancer, Agenturen, Kreative |
@emdash-cms/template-marketing | Markenstarke Site mit Portable-Text-Blöcken (Hero, Features, Testimonials, Pricing, FAQ) | Landingpages, SaaS, Produktmarketing |
Cloudflare-Varianten
Für Cloudflare Pages mit D1 und R2 hänge -cloudflare an den Template-Namen:
npm create astro@latest -- --template @emdash-cms/template-blog-cloudflare
npm create astro@latest -- --template @emdash-cms/template-portfolio-cloudflare
npm create astro@latest -- --template @emdash-cms/template-marketing-cloudflare
Diese Varianten enthalten wrangler.jsonc für die Deploy-Konfiguration.
Anpassen nach der Installation
Nach dem Setup-Assistenten ist deine Site ein normales Astro-Projekt. Passe sie wie jede Astro-Site an:
- Seiten in
src/pages/bearbeiten - Layouts in
src/layouts/ändern - Collections über die Admin-UI hinzufügen
- Astro-Integrationen installieren
- Überall deployen, wo Astro läuft
Die Seed-Datei wird nur bei der Ersteinrichtung genutzt. Danach liegt dein Schema in der Datenbank.
Nächste Schritte
- Themes erstellen — Eigenes EmDash-Theme bauen
- Seed-Dateiformat — Referenz zur Seed-Struktur
- Erste Schritte — Erste EmDash-Site anlegen