EmDash 介紹

本頁內容

EmDash 是一個 Astro 原生內容管理系統。它將熟悉的 CMS 模式——集合、分類、選單、小工具和精緻的管理介面——直接帶入您的 Astro 網站,並提供完整的 TypeScript 支援和可攜式部署。

EmDash 是什麼

EmDash 是專為 Astro 建立的 CMS。它使用 Astro 6 的即時內容集合在執行時期提供內容,因此編輯會立即顯示。內容儲存在 SQL 資料庫中——SQLite、libSQL、Cloudflare D1 或 PostgreSQL——媒體儲存在 S3 相容的儲存中(R2 或本地檔案系統)。

主要特點:

  • 視覺化內容建模 — 從管理介面定義和變更集合和欄位;變更立即生效。
  • 即時集合 — 內容在執行時期提供,因此編輯會立即顯示。
  • 外掛系統 — 受 WordPress 啟發的掛鉤、儲存、設定和管理介面擴充。
  • 雲端可攜 — 在 Cloudflare(Workers + D1 + R2)或 Node.js 上執行,支援 SQLite、libSQL 或 PostgreSQL 以及任何 S3 相容的儲存。

EmDash 不是什麼

  • 不是無頭 CMS — EmDash 與 Astro 緊密整合並在同一部署中執行,而不是作為透過 API 呼叫的獨立服務。
  • 不相容 WordPress — 它不執行 PHP 或 WordPress 外掛。WordPress 內容和概念遷移到 EmDash 等效物。
  • 不是頁面建立器 — EmDash 管理結構化內容。使用 Astro 元件建立視覺佈局。

EmDash 適合誰

代理商開發者

使用可重複使用的外掛和主題快速建立客戶網站。外掛在隔離的內容中執行, 具有明確的 API。

獨立開發者

內容管理是 Astro 網站的一部分,作為一個專案部署和管理。

內容編輯

在管理面板中建立和編輯內容。

WordPress 使用者

內容和外掛的遷移路徑。現代工具,熟悉的概念。

架構一覽

下圖顯示了 EmDash 如何位於 Astro 網站內,將內容引擎、管理面板和外掛連接到資料層。

┌─────────────────────────────────────────────────────────────┐
│                      Your Astro Site                        │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 EmDash Integration                  │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  Content    │  │   Admin     │  │   Plugins    │   │  │
│  │  │  Engine     │  │   Panel     │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  Data Layer                       ││  │
│  │  │Database (SQLite/libSQL/D1/Postgres) + media store ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Astro Framework                     │  │
│  │        Live Collections • Sessions • Middleware       │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

核心概念

這些是整個文件中使用的關鍵概念:

  • Collections(集合) — 在資料庫中定義的內容類型(文章、頁面、產品等)
  • Fields(欄位) — 集合的屬性(標題、內容、價格等)
  • Taxonomies(分類) — 分類系統(類別、標籤、自訂分類)
  • Menus(選單) — 管理員可編輯的導覽結構
  • Widget Areas(小工具區域) — 側邊欄和頁尾的可設定內容區域
  • Plugins(外掛) — 透過掛鉤、儲存和 UI 新增功能的擴充

後續步驟