EmDash ist ein pnpm-Monorepo. Das Hauptpaket ist packages/core (veröffentlicht als emdash) — es enthält die Astro-Integration, REST-API, Datenbankschicht, Schema-Verwaltung und das Plugin-System. Die Admin-Oberfläche befindet sich in packages/admin.
Für die vollständige Contributor-Referenz — Repository-Struktur, Architektur, Code-Konventionen, Changeset-Richtlinien — siehe CONTRIBUTING.md.
Lokale Einrichtung
-
Klonen und installieren
git clone https://github.com/emdash-cms/emdash.git cd emdash pnpm install pnpm build # required before first run -
Demo starten
cd demos/simple pnpm devDer Einrichtungsassistent wird beim ersten Start automatisch ausgeführt — er erstellt die Datenbank, führt Migrationen durch und fordert dich auf, ein Administratorkonto zu erstellen.
Um Beispielinhalte einzufügen:
pnpm seed -
Admin-Oberfläche öffnen
Besuche http://localhost:4321/_emdash/admin
Im Entwicklungsmodus kannst du die Passkey-Authentifizierung über den Bypass-Endpunkt überspringen:
http://localhost:4321/_emdash/api/setup/dev-bypass?redirect=/_emdash/admin
Entwicklungsworkflow
Watch-Modus
Um gleichzeitig an Core-Paketen und der Demo zu arbeiten, verwende zwei Terminals:
# Terminal 1 — rebuild packages/core on change
cd packages/core && pnpm dev
# Terminal 2 — run the demo
cd demos/simple && pnpm dev
Prüfungen
Führe diese Befehle vor dem Committen aus (im Repository-Stammverzeichnis):
pnpm typecheck # TypeScript
pnpm lint # full type-aware lint
pnpm format # auto-format (oxfmt, tabs)
Tests
Alle Tests
pnpm test Nur Core
cd packages/core && pnpm test Watch-Modus
cd packages/core && pnpm test --watch E2E
pnpm test:e2e # starts its own server Tests verwenden echtes In-Memory-SQLite — kein Mocking. Jeder Test erhält eine frische Datenbank.
Was wir akzeptieren
| Typ | Vorgehensweise |
|---|---|
| Bugfixes | Erstelle direkt einen PR. Füge einen fehlschlagenden Test bei. |
| Docs / Tippfehler | Erstelle direkt einen PR. |
| Übersetzungen | Erstelle direkt einen PR. Siehe EmDash übersetzen. |
| Features | Eröffne eine Discussion und warte auf die Genehmigung eines Maintainers. |
| Refactorings | Eröffne zuerst eine Discussion. |
Feature-PRs ohne vorherige Genehmigung eines Maintainers werden geschlossen.
Für die vollständige Beitragsrichtlinie, den Changeset-Leitfaden, die Repository-Struktur und die Architekturübersicht siehe CONTRIBUTING.md.