Erste Schritte mit EmDash
Diese Anleitung begleitet Sie bei der Erstellung Ihrer ersten EmDash-Website, von der Installation bis zur Veröffentlichung Ihres ersten Beitrags.
Wenn Sie noch prüfen, ob EmDash das richtige Astro-CMS ist, beginnen Sie mit Was ist EmDash? oder Bestes Astro-CMS und kehren Sie danach zu diesem Einrichtungsleitfaden zurück.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“- Node.js v22.12.0 oder höher (ungerade Versionsnummern werden nicht unterstützt)
- npm, pnpm oder yarn
- Ein Code-Editor (VS Code empfohlen)
Neues Projekt erstellen
Abschnitt betitelt „Neues Projekt erstellen“npm create emdash@latestpnpm create emdash@latestyarn create emdashFolgen Sie den Eingabeaufforderungen, um Ihr Projekt zu benennen und Ihre Einstellungen vorzunehmen.
Entwicklungsserver starten
Abschnitt betitelt „Entwicklungsserver starten“-
Navigieren Sie in Ihr Projektverzeichnis:
Terminal-Fenster cd my-emdash-site -
Installieren Sie die Abhängigkeiten:
Terminal-Fenster npm install -
Starten Sie den Dev-Server:
Terminal-Fenster npm run dev -
Öffnen Sie Ihren Browser unter
http://localhost:4321
Einrichtungsassistent abschließen
Abschnitt betitelt „Einrichtungsassistent abschließen“Wenn Sie das Admin-Oberfläche zum ersten Mal besuchen, führt Sie der Einrichtungsassistent von EmDash durch die anfängliche Konfiguration:
-
Navigieren Sie zu
http://localhost:4321/_emdash/admin -
Sie werden zum Einrichtungsassistenten weitergeleitet. Geben Sie ein:
- Seitentitel — Der Name Ihrer Website
- Tagline — Eine kurze Beschreibung
- Admin-E-Mail — Ihre E-Mail-Adresse
-
Klicken Sie auf Website erstellen, um Ihren Passkey zu registrieren
-
Ihr Browser fordert Sie auf, einen Passkey mit Touch ID, Face ID, Windows Hello oder einem Sicherheitsschlüssel zu erstellen
Sobald Ihr Passkey registriert ist, sind Sie angemeldet und werden zum Admin-Dashboard weitergeleitet.
Ihr erster Beitrag
Abschnitt betitelt „Ihr erster Beitrag“-
Klicken Sie in der Admin-Seitenleiste unter Inhalt auf Beiträge.
-
Klicken Sie auf Neuer Beitrag.
-
Geben Sie einen Titel ein und schreiben Sie Inhalte mit dem Rich-Text-Editor.
-
Setzen Sie den Status auf Veröffentlicht und klicken Sie auf Speichern.
-
Besuchen Sie die Startseite Ihrer Website, um Ihren Beitrag live zu sehen – kein Neubuild erforderlich!
Projektstruktur
Abschnitt betitelt „Projektstruktur“Ihr EmDash-Projekt folgt einer standardmäßigen Astro-Struktur mit einigen Ergänzungen:
my-emdash-site/├── astro.config.mjs # Astro + EmDash configuration├── src/│ ├── live.config.ts # Live Collections configuration│ ├── pages/│ │ ├── index.astro # Homepage│ │ └── posts/│ │ └── [...slug].astro # Dynamic post pages│ ├── layouts/│ │ └── Base.astro # Base layout│ └── components/ # Your Astro components├── .emdash/│ ├── seed.json # Template seed file│ └── types.ts # Generated TypeScript types└── package.jsonKonfigurationsdateien
Abschnitt betitelt „Konfigurationsdateien“astro.config.mjs
Abschnitt betitelt „astro.config.mjs“Hier wird EmDash als Astro-Integration konfiguriert:
import { defineConfig } from "astro/config";import emdash, { local } from "emdash/astro";import { sqlite } from "emdash/db";
export default defineConfig({ integrations: [ emdash({ database: sqlite({ url: "file:./data.db" }), storage: local({ directory: "./uploads", baseUrl: "/_emdash/api/media/file", }), }), ],});src/live.config.ts
Abschnitt betitelt „src/live.config.ts“Dies verbindet EmDash mit dem Content-System von Astro:
import { defineLiveCollection } from "astro:content";import { emdashLoader } from "emdash/runtime";
export const collections = { _emdash: defineLiveCollection({ loader: emdashLoader() }),};Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“Für Produktions-Deployments müssen Sie setzen:
# Required for authenticationEMDASH_AUTH_SECRET=your-secret-here
# Optional: für InhaltsvorschauEMDASH_PREVIEW_SECRET=your-preview-secretGenerieren Sie ein sicheres Auth-Secret mit:
npx emdash auth secretInhalte in Seiten abfragen
Abschnitt betitelt „Inhalte in Seiten abfragen“Verwenden Sie die Abfragefunktionen von EmDash in Ihren Astro-Seiten. Diese folgen dem Muster von Astros dynamische Sammlungen und geben { entries, error } für Collections und { entry, error } für einzelne Einträge zurück:
---import { getEmDashCollection } from "emdash";import Base from "../../layouts/Base.astro";
const { entries: posts } = await getEmDashCollection("posts");---
<Base title="Startseite"> <h1>Neueste Beiträge</h1> <ul> {posts.map((post) => ( <li> <a href={`/posts/${post.slug}`}>{post.data.title}</a> </li> ))} </ul></Base>Für einzelne Einträge:
---import { getEmDashEntry } from "emdash";
const { slug } = Astro.params;const { entry: post } = await getEmDashEntry("posts", slug);
if (!post) { return Astro.redirect("/404");}---
<h1>{post.data.title}</h1>TypeScript-Typen generieren
Abschnitt betitelt „TypeScript-Typen generieren“Für volle Typsicherheit generieren Sie Typen aus Ihrem Datenbankschema:
npx emdash typesDies erstellt .emdash/types.ts mit Interfaces für alle Ihre Collections. Ihr Editor wird nun Feldnamen automatisch vervollständigen und Typfehler erkennen.
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“Sie haben jetzt eine funktionierende EmDash-Website! Hier erfahren Sie, was Sie als Nächstes tun können:
- Kernkonzepte — Verstehen Sie, wie EmDash unter der Haube funktioniert
- Arbeiten mit Inhalten — Lernen Sie, Inhalte abzufragen und darzustellen
- Medienbibliothek — Bilder und Dateien hochladen und verwalten
- Einen Blog erstellen — Bauen Sie einen vollständigen Blog mit Kategorien und Tags
- Auf Cloudflare bereitstellen — Bringen Sie Ihre Website in die Produktion