本指南介紹如何使用 EmDash 管理儀表板建立、編輯和管理內容。
存取管理後台
在瀏覽器中開啟網站上的 /_emdash/admin。使用設定時建立的憑證登入。
儀表板顯示:
- 側邊欄 - 導覽至集合、媒體和設定
- 內容清單 - 所選集合中的項目
- 快速操作 - 建立新內容、批次操作
建立內容
-
點擊側邊欄中的集合名稱(例如 Posts)
-
點擊 New Post(或您集合的等效按鈕)
-
填寫必填欄位:
- Title - 內容的顯示名稱
- Slug - URL 識別碼(從標題自動產生,可編輯)
-
使用富文字編輯器新增內容
-
在側邊欄設定中繼資料:
- Status - Draft、Published 或 Archived
- Publication date - 發布時間
- Categories and tags - 分類法分配
-
點擊 Save
內容狀態
每個項目有三種狀態之一:
| 狀態 | 可見性 | 用途 |
|---|---|---|
| Draft | 僅管理端 | 進行中的工作 |
| Published | 公開 | 已發布內容 |
| Archived | 僅管理端 | 已封存內容 |
使用編輯器側邊欄中的下拉選單變更狀態。
富文字編輯器
EmDash 編輯器支援:
- 標題 - H2 到 H6
- 格式 - 粗體、斜體、底線、刪除線
- 清單 - 有序和無序
- 連結 - 內部和外部
- 圖片 - 從媒體庫插入
- 程式碼區塊 - 含語法醒目提示
- HTML 區塊 - 用於自訂嵌入和小工具的原始 HTML
- 嵌入 - YouTube、Vimeo、Twitter
- 區塊 - 透過
/section命令的可重用內容區塊
斜線命令
輸入 / 存取快速插入命令:
| 命令 | 操作 |
|---|---|
/section | 插入可重用區塊 |
/image | 從媒體庫插入圖片 |
/code | 插入程式碼區塊 |
/html | 插入原始 HTML 區塊 |
鍵盤快速鍵
| 操作 | 快速鍵 |
|---|---|
| 粗體 | Ctrl/Cmd + B |
| 斜體 | Ctrl/Cmd + I |
| 連結 | Ctrl/Cmd + K |
| 復原 | Ctrl/Cmd + Z |
| 重做 | Ctrl/Cmd + Shift + Z |
| 儲存 | Ctrl/Cmd + S |
插入圖片
-
點擊工具列中的圖片按鈕
-
從媒體庫選擇現有圖片,或上傳新圖片
-
新增替代文字(無障礙存取必需)
-
調整對齊和大小選項
-
點擊 Insert
HTML 區塊
使用 /html 插入原始 HTML 區塊。這對於嵌入第三方小工具、自訂標記或不適合標準區塊類型的內容很有用。從 WordPress 或 Contentful 匯入 EmDash 無法轉換為原生 Portable Text 區塊的標記內容時,也會自動建立 HTML 區塊。
要允許來自其他提供商的 iframe,請在 Portable Text 渲染中覆寫 htmlBlock 元件:
---
// src/components/MyHtmlBlock.astro
import sanitizeHtml from "sanitize-html";
const { node } = Astro.props;
if (!node?.html) {
return null;
}
const sanitized = sanitizeHtml(node.html, {
allowedTags: [...sanitizeHtml.defaults.allowedTags, "img", "span", "iframe"],
allowedAttributes: {
...sanitizeHtml.defaults.allowedAttributes,
"*": ["class", "id", "data-*", "style"],
iframe: ["src", "width", "height", "frameborder", "allow", "allowfullscreen"],
img: ["src", "srcset", "alt", "title", "width", "height", "loading"],
},
allowedIframeHostnames: [
"www.youtube.com",
"player.vimeo.com",
"iframe.videodelivery.net", // Cloudflare Stream
// Add your providers here
],
});
---
<div class="html-block" set:html={sanitized} />
然後將其傳遞給 <PortableText>:
---
import { PortableText } from "emdash/ui";
import MyHtmlBlock from "../components/MyHtmlBlock.astro";
---
<PortableText
value={post.data.content}
components={{ type: { htmlBlock: MyHtmlBlock } }}
/>
編輯內容
-
導覽至包含該內容的集合
-
點擊要編輯的項目
-
進行變更
-
點擊 Save
已發布內容的變更會立即出現在您的網站上。
修訂歷史
EmDash 追蹤內容的變更。從編輯器側邊欄存取修訂歷史:
-
點擊編輯器側邊欄中的 Revisions
-
檢視帶時間戳記的先前版本清單
-
點擊修訂以預覽
-
點擊 Restore 還原到該版本
批次操作
同時對多個項目執行操作:
-
使用核取方塊在內容清單中選擇項目
-
點擊 Bulk Actions 下拉選單
-
選擇操作:
- Publish - 將所有選中項目設為已發布
- Archive - 將所有選中項目設為已封存
- Delete - 永久刪除選中項目
-
確認操作
搜尋和篩選
搜尋
使用搜尋框按標題或內容查找。搜尋不區分大小寫,支援部分比對。
篩選器
按以下條件篩選內容清單:
- Status - Draft、Published、Archived
- Date range - 建立或修改日期
- Author - 內容建立者
- Taxonomy - 分類或標籤分配
點擊 Clear Filters 重設。
排程發布內容
計劃在未來日期發布內容:
-
建立或編輯內容
-
將狀態設為 Draft
-
將 Publication date 設為未來的日期和時間
-
點擊 Save
到達發布日期時,內容會自動發布。
刪除內容
從編輯畫面或內容清單刪除內容:
從編輯器
-
開啟要刪除的內容
-
點擊工具列中的 Delete
-
確認刪除
從清單
-
使用核取方塊選擇項目
-
點擊 Bulk Actions > Delete
-
確認刪除
內容 API
如需程式化存取,請使用 EmDash 管理 API。
建立內容
以下請求建立草稿文章:
POST /_emdash/api/content/posts
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "My New Post",
"slug": "my-new-post",
"content": "<p>Post content here</p>",
"status": "draft"
}
更新內容
以下請求更新現有文章並發布:
PUT /_emdash/api/content/posts/my-new-post
Content-Type: application/json
Authorization: Bearer YOUR_API_TOKEN
{
"title": "Updated Title",
"status": "published"
}
刪除內容
以下請求永久刪除文章:
DELETE /_emdash/api/content/posts/my-new-post
Authorization: Bearer YOUR_API_TOKEN
翻譯內容
當啟用 i18n時,您可以建立任何內容項目的翻譯。
建立翻譯
-
開啟要翻譯的內容項目
-
在編輯器側邊欄中找到 Translations 面板
-
點擊目標語言區域旁的 Translate
-
編輯預填內容 — 為新語言調整標題、slug 和正文
-
點擊 Save
新翻譯與原始項目關聯,並以草稿狀態開始。翻譯完成後可獨立發布。
在翻譯之間切換
Translations 面板顯示所有設定的語言區域。點擊任何現有翻譯旁的 Edit 直接導覽。目前語言區域以勾選標記顯示。
語言區域篩選
在內容清單中,使用工具列中的語言區域下拉選單按語言篩選項目。每個項目在專用欄中顯示其語言區域。
有關設定、查詢和語言切換器的完整詳情,請參閱國際化指南。