プラグインのインストール

このページ

EmDashプラグインは2つの方法でインストールできます:管理ダッシュボードからマーケットプレイス経由で、またはAstro設定に直接追加します。マーケットプレイスプラグインは常にサンドボックスで実行されます。設定ベースのプラグインは、宣言されている配列(sandboxed: [] vs plugins: [])に応じて、サンドボックスまたはインプロセスで実行されます。

マーケットプレイスから

管理ダッシュボードにはプラグインを検索、インストール、管理できるマーケットプレイスブラウザが含まれています。

前提条件

マーケットプレイスプラグインをインストールするには、サイトに以下が必要です:

  1. サンドボックスランナーの設定 — マーケットプレイスプラグインは分離されたランタイムで実行され、サンドボックスランナーが必要です。以下の設定で有効にします:

    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
  2. 管理者アクセス — プラグインのインストールや削除は管理者のみが行えます。

閲覧とインストール

  1. 管理パネルを開き、プラグイン > マーケットプレイスに移動します
  2. プラグインを閲覧または検索します
  3. プラグインカードをクリックして詳細ページを表示します — README、スクリーンショット、機能、セキュリティ監査結果
  4. インストールをクリックします
  5. 機能同意ダイアログを確認します — プラグインがアクセスできるものが表示されます
  6. インストールを確認します

プラグインがダウンロードされ、サイトのR2バケットに保存され、サンドボックスランナーに読み込まれます。すぐにアクティブになります。

機能の同意

インストール前に、プラグインがアクセスする必要があるものをリストしたダイアログが表示されます:

機能意味
content:readコンテンツを読み取る
content:writeコンテンツを作成、更新、削除する
media:readメディアライブラリにアクセスする
media:writeメディアをアップロードして管理する
network:request特定のホストにネットワークリクエストを行う

セキュリティ監査

マーケットプレイスのすべてのプラグインバージョンは自動セキュリティ監査を受けています。監査結果はプラグインカードに表示されます:

  • 合格 — 問題は見つかりませんでした
  • 警告 — 軽微な懸念がフラグされています(結果を確認してください)
  • 不合格 — 重大なセキュリティ問題が検出されました

プラグインの詳細ページで完全な監査レポートを確認できます。個別の発見事項とその重大度を含みます。

アップデート

インストール済みプラグインの新しいバージョンが利用可能な場合:

  1. 管理パネルのプラグインに移動します
  2. マーケットプレイスプラグインにアップデート利用可能バッジが表示されます
  3. アップデートをクリックしてchangelogと機能の変更を確認します
  4. 新しいバージョンが追加の機能を必要とする場合、差分が表示され承認が必要です
  5. 確認してアップデートします

アンインストール

  1. 管理パネルのプラグインに移動します
  2. 削除したいマーケットプレイスプラグインをクリックします
  3. アンインストールをクリックします
  4. プラグインの保存データを保持するか削除するか選択します
  5. 確認します

プラグインのサンドボックスコードが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レンダリングコンポーネントいいえはい(ネイティブプラグイン)
アップデート管理でワンクリックバージョンバンプ + デプロイ
最適な用途ほとんどのプラグインビルド時統合が必要なプラグイン