EmDashプラグインは2つの方法でインストールできます:管理ダッシュボードからマーケットプレイス経由で、またはAstro設定に直接追加します。マーケットプレイスプラグインは常にサンドボックスで実行されます。設定ベースのプラグインは、宣言されている配列(sandboxed: [] vs plugins: [])に応じて、サンドボックスまたはインプロセスで実行されます。
マーケットプレイスから
管理ダッシュボードにはプラグインを検索、インストール、管理できるマーケットプレイスブラウザが含まれています。
前提条件
マーケットプレイスプラグインをインストールするには、サイトに以下が必要です:
-
サンドボックスランナーの設定 — マーケットプレイスプラグインは分離されたランタイムで実行され、サンドボックスランナーが必要です。以下の設定で有効にします:
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", }), ], });Cloudflare Workersでは、サンドボックスはDynamic Worker Loader APIを使用します(追加設定不要)。Node.jsでは、workerdサンドボックスランナーをインストールします:
npm install @emdash-cms/sandbox-workerd次にランナーを明示的に渡します:
emdash({ marketplace: "https://marketplace.emdashcms.com", sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox", })開発では、サンドボックスの起動を高速化するために
miniflareを開発依存関係としてインストールします:npm install -D miniflare -
管理者アクセス — プラグインのインストールや削除は管理者のみが行えます。
閲覧とインストール
- 管理パネルを開き、プラグイン > マーケットプレイスに移動します
- プラグインを閲覧または検索します
- プラグインカードをクリックして詳細ページを表示します — README、スクリーンショット、機能、セキュリティ監査結果
- インストールをクリックします
- 機能同意ダイアログを確認します — プラグインがアクセスできるものが表示されます
- インストールを確認します
プラグインがダウンロードされ、サイトのR2バケットに保存され、サンドボックスランナーに読み込まれます。すぐにアクティブになります。
機能の同意
インストール前に、プラグインがアクセスする必要があるものをリストしたダイアログが表示されます:
| 機能 | 意味 |
|---|---|
content:read | コンテンツを読み取る |
content:write | コンテンツを作成、更新、削除する |
media:read | メディアライブラリにアクセスする |
media:write | メディアをアップロードして管理する |
network:request | 特定のホストにネットワークリクエストを行う |
セキュリティ監査
マーケットプレイスのすべてのプラグインバージョンは自動セキュリティ監査を受けています。監査結果はプラグインカードに表示されます:
- 合格 — 問題は見つかりませんでした
- 警告 — 軽微な懸念がフラグされています(結果を確認してください)
- 不合格 — 重大なセキュリティ問題が検出されました
プラグインの詳細ページで完全な監査レポートを確認できます。個別の発見事項とその重大度を含みます。
アップデート
インストール済みプラグインの新しいバージョンが利用可能な場合:
- 管理パネルのプラグインに移動します
- マーケットプレイスプラグインにアップデート利用可能バッジが表示されます
- アップデートをクリックしてchangelogと機能の変更を確認します
- 新しいバージョンが追加の機能を必要とする場合、差分が表示され承認が必要です
- 確認してアップデートします
アンインストール
- 管理パネルのプラグインに移動します
- 削除したいマーケットプレイスプラグインをクリックします
- アンインストールをクリックします
- プラグインの保存データを保持するか削除するか選択します
- 確認します
プラグインのサンドボックスコードがR2バケットから削除され、即座に実行が停止します。
設定から
ネイティブプラグイン — 自分のコード、またはnpm経由でインストールしたパッケージ — はAstro設定に直接追加します。以下の例はSEOプラグインを登録します:
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 }),
],
}),
],
});
ネイティブプラグイン:
- インプロセスで実行されます(サンドボックスではない)
- Node.js APIへのフルアクセスがあります
- ビルド時および毎回のサーバー起動時に読み込まれます
- 管理UIからインストールまたは削除できません
マーケットプレイス vs. 設定 — いつどちらを使うか
| マーケットプレイス(サンドボックス) | 設定(ネイティブまたはインプロセスサンドボックス) | |
|---|---|---|
| インストール方法 | 管理UIでワンクリック | コード変更 + npm install + デプロイ |
| 実行 | 設定されたランナー経由のサンドボックスランタイム | インプロセス(または sandboxed: [] に記載されランナーが利用可能な場合はサンドボックス) |
| 機能 | サンドボックスブリッジで適用 — ctx.* ゲーティングとランタイム分離 | ctx.* ゲーティングのみ(インプロセスプラグインは直接 fetch()、env、importsでバイパス可能) |
| Node.js API | 利用不可 | フルアクセス(インプロセスのみ) |
| React管理ページ | いいえ(代わりにBlock Kit) | はい(ネイティブプラグイン) |
| PTレンダリングコンポーネント | いいえ | はい(ネイティブプラグイン) |
| アップデート | 管理でワンクリック | バージョンバンプ + デプロイ |
| 最適な用途 | ほとんどのプラグイン | ビルド時統合が必要なプラグイン |