安裝外掛

本頁內容

EmDash 外掛可透過兩種方式安裝:透過管理面板從 marketplace 安裝,或直接在 Astro 設定中新增。Marketplace 外掛始終在沙箱中執行;基於設定的外掛根據它們宣告的陣列(sandboxed: [] vs plugins: [])在沙箱或處理程序內執行。

從 Marketplace 安裝

管理面板包含一個 marketplace 瀏覽器,您可以在其中搜尋、安裝和管理外掛。

前置條件

要安裝 marketplace 外掛,您的網站需要:

  1. 設定沙箱執行器 — Marketplace 外掛在隔離的執行環境中執行,這需要沙箱執行器。以下設定可啟用它:

    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",
        }),
      ],
    });
  2. 管理員存取權限 — 只有管理員才能安裝或移除外掛。

瀏覽和安裝

  1. 開啟管理面板並導覽至 外掛 > Marketplace
  2. 瀏覽或搜尋外掛
  3. 點擊外掛卡片檢視其詳情頁面 — README、螢幕截圖、功能權限和安全稽核結果
  4. 點擊 安裝
  5. 檢視功能權限同意對話框 — 這會顯示外掛可以存取的內容
  6. 確認安裝

外掛將被下載,儲存在您網站的 R2 儲存桶中,並載入到沙箱執行器中。它會立即生效。

功能權限同意

在安裝之前,您會看到一個對話框,列出外掛需要存取的內容:

功能權限含義
content:read讀取您的內容
content:write建立、更新和刪除內容
media:read存取您的媒體庫
media:write上傳和管理媒體
network:request向特定主機傳送網路請求

安全稽核

marketplace 中的每個外掛版本都經過了自動安全稽核。稽核結果會顯示在外掛卡片上:

  • Pass — 未發現問題
  • Warn — 發現輕微問題(請檢視詳細結果)
  • Fail — 偵測到重大安全問題

您可以在外掛的詳情頁面上檢視完整的稽核報告,包括各個發現及其嚴重程度。

更新

當已安裝外掛的新版本可用時:

  1. 在管理面板中進入 外掛
  2. Marketplace 外掛會顯示 更新可用 徽章
  3. 點擊 更新 檢視更新日誌和任何功能權限變更
  4. 如果新版本需要額外的功能權限,您會看到差異並需要核准
  5. 確認更新

解除安裝

  1. 在管理面板中進入 外掛
  2. 點擊您要移除的 marketplace 外掛
  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
  • 在建置時和每次伺服器啟動時載入
  • 無法從管理介面安裝或移除

Marketplace vs. 設定 — 何時使用哪個

Marketplace(沙箱)設定(原生或處理程序內沙箱)
安裝方式管理介面一鍵安裝程式碼變更 + npm install + 部署
執行方式透過設定的執行器在沙箱執行環境中執行處理程序內(或如果列在 sandboxed: [] 下且執行器可用則在沙箱中)
功能權限由沙箱橋接器強制執行 — ctx.* 控制加執行環境隔離ctx.* 控制(處理程序內外掛可以透過直接 fetch()、env、imports 繞過)
Node.js API不可用完全存取(僅處理程序內)
React 管理頁面否(改用 Block Kit)是(原生外掛)
PT 渲染元件是(原生外掛)
更新管理介面一鍵更新版本升級 + 部署
最適合大多數外掛需要建置時整合的外掛