使用内容

本页内容

本指南介绍如何使用 EmDash 管理仪表板创建、编辑和管理内容。

访问管理后台

在浏览器中打开站点上的 /_emdash/admin。使用设置时创建的凭据登录。

仪表板显示:

  • 侧边栏 - 导航到集合、媒体和设置
  • 内容列表 - 所选集合中的条目
  • 快捷操作 - 创建新内容、批量操作

创建内容

  1. 点击侧边栏中的集合名称(例如 Posts

  2. 点击 New Post(或您集合的等效按钮)

  3. 填写必填字段:

    • Title - 内容的显示名称
    • Slug - URL 标识符(从标题自动生成,可编辑)
  4. 使用富文本编辑器添加内容

  5. 在侧边栏设置元数据:

    • Status - Draft、Published 或 Archived
    • Publication date - 发布时间
    • Categories and tags - 分类法分配
  6. 点击 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

插入图片

  1. 点击工具栏中的图片按钮

  2. 从媒体库选择现有图片,或上传新图片

  3. 添加替代文本(无障碍访问必需)

  4. 调整对齐和大小选项

  5. 点击 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 } }}
/>

编辑内容

  1. 导航到包含该内容的集合

  2. 点击要编辑的条目

  3. 进行更改

  4. 点击 Save

已发布内容的更改会立即出现在您的网站上。

修订历史

EmDash 跟踪内容的更改。从编辑器侧边栏访问修订历史:

  1. 点击编辑器侧边栏中的 Revisions

  2. 查看带时间戳的先前版本列表

  3. 点击修订以预览

  4. 点击 Restore 恢复到该版本

批量操作

同时对多个条目执行操作:

  1. 使用复选框在内容列表中选择条目

  2. 点击 Bulk Actions 下拉菜单

  3. 选择操作:

    • Publish - 将所有选中项设为已发布
    • Archive - 将所有选中项设为已归档
    • Delete - 永久删除选中项
  4. 确认操作

搜索和筛选

搜索

使用搜索框按标题或内容查找。搜索不区分大小写,支持部分匹配。

筛选器

按以下条件筛选内容列表:

  • Status - Draft、Published、Archived
  • Date range - 创建或修改日期
  • Author - 内容创建者
  • Taxonomy - 分类或标签分配

点击 Clear Filters 重置。

计划发布内容

计划在未来日期发布内容:

  1. 创建或编辑内容

  2. 将状态设为 Draft

  3. Publication date 设为未来的日期和时间

  4. 点击 Save

到达发布日期时,内容会自动发布。

删除内容

从编辑屏幕或内容列表删除内容:

从编辑器

  1. 打开要删除的内容

  2. 点击工具栏中的 Delete

  3. 确认删除

从列表

  1. 使用复选框选择条目

  2. 点击 Bulk Actions > Delete

  3. 确认删除

内容 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时,您可以创建任何内容条目的翻译。

创建翻译

  1. 打开要翻译的内容条目

  2. 在编辑器侧边栏中找到 Translations 面板

  3. 点击目标语言区域旁的 Translate

  4. 编辑预填内容 — 为新语言调整标题、slug 和正文

  5. 点击 Save

新翻译与原始条目关联,并以草稿状态开始。翻译完成后可独立发布。

在翻译之间切换

Translations 面板显示所有配置的语言区域。点击任何现有翻译旁的 Edit 直接导航。当前语言区域以勾选标记显示。

语言区域筛选

在内容列表中,使用工具栏中的语言区域下拉菜单按语言筛选条目。每个条目在专用列中显示其语言区域。

有关配置、查询和语言切换器的完整详情,请参阅国际化指南

下一步