EmDash 外掛可透過兩種方式安裝:透過管理面板從 marketplace 安裝,或直接在 Astro 設定中新增。Marketplace 外掛始終在沙箱中執行;基於設定的外掛根據它們宣告的陣列(sandboxed: [] vs plugins: [])在沙箱或處理程序內執行。
從 Marketplace 安裝
管理面板包含一個 marketplace 瀏覽器,您可以在其中搜尋、安裝和管理外掛。
前置條件
要安裝 marketplace 外掛,您的網站需要:
-
設定沙箱執行器 — 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", }), ], }); -
管理員存取權限 — 只有管理員才能安裝或移除外掛。
瀏覽和安裝
- 開啟管理面板並導覽至 外掛 > Marketplace
- 瀏覽或搜尋外掛
- 點擊外掛卡片檢視其詳情頁面 — README、螢幕截圖、功能權限和安全稽核結果
- 點擊 安裝
- 檢視功能權限同意對話框 — 這會顯示外掛可以存取的內容
- 確認安裝
外掛將被下載,儲存在您網站的 R2 儲存桶中,並載入到沙箱執行器中。它會立即生效。
功能權限同意
在安裝之前,您會看到一個對話框,列出外掛需要存取的內容:
| 功能權限 | 含義 |
|---|---|
content:read | 讀取您的內容 |
content:write | 建立、更新和刪除內容 |
media:read | 存取您的媒體庫 |
media:write | 上傳和管理媒體 |
network:request | 向特定主機傳送網路請求 |
安全稽核
marketplace 中的每個外掛版本都經過了自動安全稽核。稽核結果會顯示在外掛卡片上:
- Pass — 未發現問題
- Warn — 發現輕微問題(請檢視詳細結果)
- Fail — 偵測到重大安全問題
您可以在外掛的詳情頁面上檢視完整的稽核報告,包括各個發現及其嚴重程度。
更新
當已安裝外掛的新版本可用時:
- 在管理面板中進入 外掛
- Marketplace 外掛會顯示 更新可用 徽章
- 點擊 更新 檢視更新日誌和任何功能權限變更
- 如果新版本需要額外的功能權限,您會看到差異並需要核准
- 確認更新
解除安裝
- 在管理面板中進入 外掛
- 點擊您要移除的 marketplace 外掛
- 點擊 解除安裝
- 選擇是保留還是刪除外掛的儲存資料
- 確認
外掛的沙箱程式碼將從您的 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 渲染元件 | 否 | 是(原生外掛) |
| 更新 | 管理介面一鍵更新 | 版本升級 + 部署 |
| 最適合 | 大多數外掛 | 需要建置時整合的外掛 |