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", }), ], }); -
管理者アクセス — 管理者のみがプラグインをインストールまたは削除できます。
閲覧とインストール
- 管理パネルを開き、プラグイン > マーケットプレイスに移動します
- プラグインを閲覧または検索します
- プラグインカードをクリックして詳細ページを表示します — README、スクリーンショット、機能、セキュリティ監査結果
- インストールをクリックします
- 機能同意ダイアログを確認します — プラグインがアクセスできるものが表示されます
- インストールを確認します
プラグインはダウンロードされ、サイトのR2バケットに保存され、サンドボックスランナーに読み込まれます。すぐにアクティブになります。
機能の同意
インストール前に、プラグインがアクセスする必要があるものをリストしたダイアログが表示されます:
| 機能 | 意味 |
|---|---|
content:read | コンテンツを読み取る |
content:write | コンテンツを作成、更新、削除する |
media:read | メディアライブラリにアクセスする |
media:write | メディアをアップロードおよび管理する |
network:request | 特定のホストへのネットワークリクエストを行う |
セキュリティ監査
マーケットプレイスのすべてのプラグインバージョンは、自動セキュリティ監査を受けています。監査の判定はプラグインカードに表示されます:
- Pass — 問題は見つかりませんでした
- Warn — 軽微な懸念事項がフラグ付けされました(結果を確認してください)
- Fail — 重大なセキュリティ問題が検出されました
プラグインの詳細ページで、個々の結果とその重大度を含む完全な監査レポートを表示できます。
更新
インストールされたプラグインの新しいバージョンが利用可能な場合:
- 管理パネルのプラグインに移動します
- マーケットプレイスのプラグインに更新可能バッジが表示されます
- 更新をクリックして、変更履歴と機能の変更を確認します
- 新しいバージョンで追加の機能が必要な場合は、差分が表示され、承認が必要です
- 更新を確認します
アンインストール
- 管理パネルのプラグインに移動します
- 削除したいマーケットプレイスのプラグインをクリックします
- アンインストールをクリックします
- プラグインの保存されたデータを保持するか削除するかを選択します
- 確認します
プラグインのサンドボックスコードは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レンダリングコンポーネント | いいえ | はい(ネイティブプラグイン) |
| 更新 | 管理でワンクリック | バージョンバンプ + デプロイ |
| 最適な用途 | ほとんどのプラグイン | ビルド時統合が必要なプラグイン |