EmDash-Plugins werden in einem von zwei Formaten ausgeliefert: sandboxed oder nativ. Die Wahl beeinflusst die Installation, die Laufzeitdurchsetzung und die verfügbaren Funktionen.
Standardmäßig sandboxed. Sandboxed Plugins können im Marketplace veröffentlicht und mit einem Klick aus der Admin-UI installiert werden. Native Plugins erfordern eine Codeänderung, ein npm install und ein Redeployment.
Auf einen Blick
| Sandboxed | Nativ | |
|---|---|---|
| Autorenformat | emdash-plugin.jsonc + src/plugin.ts | definePlugin() Deskriptor |
| Installationsmethode | Ein-Klick aus dem Admin-Marketplace | npm install + astro.config bearbeiten |
| Läuft in | Isolierte Laufzeit eines Sandbox-Runners | Gleicher Prozess wie Ihre Astro-Site |
| Fähigkeiten | Von der Sandbox-Bridge durchgesetzt | Im Prozess durchgesetzt |
| Ressourcenlimits | Vom Runner durchgesetzt | Keine |
| Netzwerkzugriff | Nur ctx.http, beschränkt auf allowedHosts | Nur ctx.http, beschränkt auf allowedHosts |
| Admin-UI | Block Kit (JSON-beschrieben) | React-Komponenten oder Block Kit |
| Portable-Text-Rendering | Nicht verfügbar | componentsEntry stellt Astro-Komponenten bereit |
| Seitenfragment-Injection | Nicht verfügbar | page:fragments Hook |
Was Sie durch Native aufgeben
- Kein Marketplace. Jede Site muss Ihr npm-Paket installieren.
- Keine Isolation. Ein Bug kann den Host-Prozess zum Absturz bringen.
- Vertrauenslast beim Benutzer. Native Plugins haben denselben Zugriff wie die Host-Site.
Wann native wählen
- Benutzerdefinierte React-Admin-Seiten oder Widgets.
- Astro-Komponenten für Portable-Text-Blocks.
- Rohes HTML, Skripte oder Stylesheets in öffentliche Seiten injizieren.
Sandbox-Runner und Plattformunterstützung
Die Sandbox selbst ist pluggable. Zwei Runner werden mit EmDash ausgeliefert. Siehe Plugin-Sandbox für Details.