EmDash 簡介

本頁內容

EmDash 是一套 Astro 原生的內容管理系統。它把熟悉的 CMS 模式——集合、分類法、選單、小工具與精緻的管理後台——直接帶進你的 Astro 網站,並提供完整的 TypeScript 支援與可攜式部署。

EmDash 是什麼

EmDash 是專為 Astro 打造的 CMS。它使用 Astro 6 的 Live Content Collections,在執行時期提供內容而無需重新建置。內容存放在相容 SQLite 的資料庫(D1、libSQL、本機 SQLite),媒體則存放在相容 S3 的儲存空間(R2、本機檔案系統)。

主要特色:

  • 資料庫優先的結構描述 — 集合與欄位在資料庫中定義,而非程式碼中。可在管理後台建立並修改內容類型。
  • Live Collections — 內容變更立即可用,無需靜態重建。
  • 外掛系統 — 受 WordPress 啟發的勾點、儲存空間、設定與管理介面擴充。
  • 可攜至上雲端 — 可執行於 Cloudflare(Workers + D1 + R2)、Node.js、本機 SQLite,以及任何相容 S3 的儲存服務。

EmDash 不是什麼

  • 不是 Headless CMS — EmDash 與 Astro 緊密整合,不是透過 API 呼叫的獨立服務。
  • 不相容 WordPress — 沒有 PHP,也不能直接執行 WordPress 外掛。但 WordPress 的內容與概念可以清楚遷移。
  • 不是頁面產生器 — EmDash 聚焦結構化內容。視覺化頁面編排請使用 Astro 元件。

EmDash 適合誰

代理商開發者

用可重複使用的外掛與佈景主題快速交付客戶網站。不必處理 PHP 安全性更新,也沒有 外掛衝突。

獨立開發者

內建 CMS 的全端框架。不必再維護額外的 Headless CMS。

內容編輯

直覺的管理面板。不必碰程式碼就能建立與編輯內容。

WordPress 使用者

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

架構一覽

┌─────────────────────────────────────────────────────────────┐
│                      你的 Astro 網站                        │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 EmDash 整合                           │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  內容       │  │   管理      │  │   外掛       │   │  │
│  │  │  引擎       │  │   面板      │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  資料層                           ││  │
│  │  │    SQLite/D1      ←→  Kysely  ←→  R2/S3/本機      ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Astro 框架                          │  │
│  │        Live Collections • 工作階段 • 中介軟體           │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

核心概念

在深入之前,請先熟悉這些名詞:

  • Collections — 在資料庫中定義的內容類型(文章、頁面、產品等)
  • Fields — 集合的屬性(標題、內文、價格等)
  • Taxonomies — 分類體系(分類、標籤、自訂分類法)
  • Menus — 可在後台編輯的導覽結構
  • Widget Areas — 用於側欄與頁尾等位置的可設定內容區域
  • Plugins — 透過勾點、儲存與介面擴充功能的外掛

下一步