EmDash-Plugins können auf zwei Arten installiert werden: über den Marketplace im Admin-Dashboard oder direkt in Ihrer Astro-Konfiguration. Marketplace-Plugins laufen immer in einer Sandbox; konfigurationsbasierte Plugins laufen je nach Array, in dem sie deklariert sind, in einer Sandbox oder im Prozess (sandboxed: [] vs. plugins: []).
Aus dem Marketplace
Das Admin-Dashboard enthält einen Marketplace-Browser, in dem Sie Plugins suchen, installieren und verwalten können.
Voraussetzungen
Um Marketplace-Plugins zu installieren, benötigt Ihre Website:
-
Konfigurierter Sandbox-Runner — Marketplace-Plugins laufen in einer isolierten Laufzeitumgebung, die den Sandbox-Runner erfordert. Die folgende Konfiguration aktiviert ihn:
import { defineConfig } from "astro/config"; import emdash from "emdash/astro"; export default defineConfig({ integrations: [ emdash({ marketplace: "https://marketplace.emdashcms.com", sandboxRunner: "@emdash-cms/sandbox-cloudflare", }), ], }); -
Admin-Zugriff — Nur Administratoren können Plugins installieren oder entfernen.
Durchsuchen und Installieren
- Öffnen Sie das Admin-Panel und navigieren Sie zu Plugins > Marketplace
- Durchsuchen oder suchen Sie nach einem Plugin
- Klicken Sie auf die Plugin-Karte, um die Detailseite zu sehen — README, Screenshots, Berechtigungen und Sicherheitsprüfungsergebnisse
- Klicken Sie auf Installieren
- Überprüfen Sie den Dialog zur Berechtigungszustimmung — dieser zeigt, worauf das Plugin zugreifen kann
- Bestätigen Sie die Installation
Das Plugin wird heruntergeladen, in Ihrem R2-Bucket der Website gespeichert und in den Sandbox-Runner geladen. Es ist sofort aktiv.
Berechtigungszustimmung
Vor der Installation sehen Sie einen Dialog, der auflistet, worauf das Plugin Zugriff benötigt:
| Berechtigung | Was es bedeutet |
|---|---|
content:read | Ihre Inhalte lesen |
content:write | Inhalte erstellen, aktualisieren und löschen |
media:read | Auf Ihre Medienbibliothek zugreifen |
media:write | Medien hochladen und verwalten |
network:request | Netzwerkanfragen an bestimmte Hosts stellen |
Sicherheitsprüfung
Jede Plugin-Version im Marketplace wurde einer automatisierten Sicherheitsprüfung unterzogen. Das Prüfungsergebnis erscheint auf der Plugin-Karte:
- Pass — Keine Probleme gefunden
- Warn — Kleinere Bedenken gekennzeichnet (überprüfen Sie die Ergebnisse)
- Fail — Erhebliche Sicherheitsprobleme erkannt
Sie können den vollständigen Prüfbericht auf der Detailseite des Plugins einsehen, einschließlich einzelner Ergebnisse und deren Schweregrad.
Updates
Wenn eine neuere Version eines installierten Plugins verfügbar ist:
- Gehen Sie zu Plugins im Admin-Panel
- Marketplace-Plugins zeigen ein Update verfügbar-Badge
- Klicken Sie auf Update, um das Changelog und eventuelle Berechtigungsänderungen zu sehen
- Wenn die neue Version zusätzliche Berechtigungen erfordert, sehen Sie einen Diff und müssen zustimmen
- Bestätigen Sie das Update
Deinstallieren
- Gehen Sie zu Plugins im Admin-Panel
- Klicken Sie auf das Marketplace-Plugin, das Sie entfernen möchten
- Klicken Sie auf Deinstallieren
- Wählen Sie, ob die gespeicherten Daten des Plugins behalten oder gelöscht werden sollen
- Bestätigen
Der Sandbox-Code des Plugins wird aus Ihrem R2-Bucket entfernt und es stoppt sofort die Ausführung.
Aus der Konfiguration
Native Plugins — Ihr eigener Code oder über npm installierte Pakete — werden direkt zur Astro-Konfiguration hinzugefügt. Das folgende Beispiel registriert das SEO-Plugin:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import seoPlugin from "@emdash-cms/plugin-seo";
export default defineConfig({
integrations: [
emdash({
plugins: [
seoPlugin({ generateSitemap: true }),
],
}),
],
});
Native Plugins:
- Laufen im Prozess (nicht in einer Sandbox)
- Haben vollen Zugriff auf Node.js-APIs
- Werden zur Build-Zeit und bei jedem Serverstart geladen
- Können nicht über die Admin-UI installiert oder entfernt werden
Marketplace vs. Konfiguration — wann welche verwenden
| Marketplace (Sandbox) | Konfiguration (native oder im Prozess in Sandbox) | |
|---|---|---|
| Installationsmethode | Ein Klick in der Admin-UI | Codeänderung + npm install + Deployment |
| Ausführung | Sandbox-Laufzeit über den konfigurierten Runner | Im Prozess (oder in Sandbox, wenn unter sandboxed: [] aufgelistet und ein Runner verfügbar ist) |
| Berechtigungen | Durchgesetzt durch die Sandbox-Bridge — ctx.*-Gating plus Laufzeit-Isolation | Nur ctx.*-Gating (Plugins im Prozess können über direktes fetch(), env, imports umgehen) |
| Node.js-APIs | Nicht verfügbar | Voller Zugriff (nur im Prozess) |
| React-Admin-Seiten | Nein (stattdessen Block Kit) | Ja (native Plugins) |
| PT-Rendering-Komponenten | Nein | Ja (native Plugins) |
| Updates | Ein Klick im Admin | Version-Bump + Deployment |
| Am besten für | Die meisten Plugins | Plugins, die Build-Zeit-Integration benötigen |