EmDash 主題是一個完整的 Astro 站點 — 頁面、版面、元件、樣式 — 透過 create-astro 發布。它還包括一個 seed 檔案,在首次執行時使用集合、欄位、選單、重新導向和範例內容引導資料庫。
主題提供的內容
主題是一個可運作的 Astro 專案,包含:
- Pages — 用於呈現內容的 Astro 路由(首頁、部落格文章、封存等)
- Layouts — 共享的 HTML 結構
- Components — 可重複使用的 UI 元素(導覽、卡片、頁尾)
- Styles — CSS 或 Tailwind 設定
- 一個 seed 檔案 — 告訴 CMS 要建立哪些內容類型和欄位的 JSON
主題結構
主題具有以下版面配置:
my-theme/
├── package.json # 主題中繼資料 + EmDash 設定
├── astro.config.mjs # Astro 整合設定
├── src/
│ ├── live.config.ts # Live Collections 設定
│ ├── pages/ # Astro 路由
│ ├── layouts/ # 版面元件
│ └── components/ # UI 元件
└── .emdash/
├── seed.json # 架構 + 範例內容
└── uploads/ # 可選的本地媒體檔案
主題如何引導站點
從主題建立站點遵循以下步驟:
create-astro從範本建構專案- 執行
npm install和npm run dev - 在首次造訪管理頁面時,設定精靈會自動執行
- 精靈套用 seed 檔案,建立集合、選單、重新導向和內容
- 站點準備就緒
面向使用者
選擇主題,執行精靈,開始編輯。無需資料庫知識。
面向開發者
主題是標準的 Astro 專案。建構後可自由客製化。
安裝主題
以下指令從官方主題範本建構站點:
npm create astro@latest -- --template @emdash-cms/template-blog
託管在 GitHub 上的社群主題使用 github: 範本前綴:
npm create astro@latest -- --template github:user/emdash-portfolio
建構後,安裝相依性並啟動開發伺服器:
cd my-site
npm install
npm run dev
造訪 http://localhost:4321/_emdash/admin 完成設定精靈。
設定精靈
設定精靈在首次造訪管理頁面時自動執行。它執行以下步驟:
- 提示輸入站點標題、標語和管理員憑證
- 提供包含範例內容的選項
- 將 seed 檔案套用到資料庫
- 重新導向到管理儀表板
官方主題
EmDash 提供官方入門主題,每個主題都有本地(SQLite + 檔案系統)和 Cloudflare(D1 + R2)變體:
| 主題 | 描述 | 使用案例 |
|---|---|---|
@emdash-cms/template-blog | 帶有文章、頁面、分類和深色模式的極簡部落格 | 個人部落格、簡單站點 |
@emdash-cms/template-portfolio | 帶有專案、襯線字型(Playfair Display)和以圖片為中心的版面配置的編輯風格作品集 | 自由工作者、代理機構、創意人員 |
@emdash-cms/template-marketing | 帶有自訂 Portable Text 區塊(英雄、功能、推薦、定價、FAQ)的醒目行銷站點 | 著陸頁、SaaS 站點、產品行銷 |
Cloudflare 變體
要部署到使用 D1 和 R2 的 Cloudflare Workers,請在範本名稱後新增 -cloudflare,如以下指令所示:
npm create astro@latest -- --template @emdash-cms/template-blog-cloudflare
npm create astro@latest -- --template @emdash-cms/template-portfolio-cloudflare
npm create astro@latest -- --template @emdash-cms/template-marketing-cloudflare
這些變體包含用於部署設定的 wrangler.jsonc。
安裝後客製化
設定精靈完成後,站點就是一個標準的 Astro 專案。像任何 Astro 站點一樣進行客製化:
- 在
src/pages/中編輯頁面 - 在
src/layouts/中修改版面 - 透過管理 UI 新增集合
- 安裝 Astro 整合
- 在 Astro 執行的任何地方部署
seed 檔案僅在初始設定期間使用。之後,在管理面板或使用 CLI 管理內容模型。