EmDash 视觉内容建模完全指南:10分钟学会创建自定义内容类型,无需写一行代码
【免费下载链接】emdashEmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress项目地址: https://gitcode.com/gh_mirrors/emdas/emdash
EmDash 是一个基于 Astro 的全栈 TypeScript CMS,被称作 WordPress 的精神续作。它最贴心的设计之一,就是让"视觉内容建模"真正零门槛:你不需要编写任何代码,只需在后台的Content Types(内容类型)面板中点选字段,就能为网站创建任意自定义内容类型(如产品、作品集、课程),并立刻生成给编辑使用的录入表单。本文带你 10 分钟走完整个流程。
什么是视觉内容建模?
EmDash 用三个简单的概念描述网站存储的所有信息(详见 content-model.mdx):
| 概念 | 含义 | 例子 |
|---|---|---|
| 集合(Collection) | 一类内容 | 文章、产品、作者 |
| 字段(Field) | 内容中的一块信息 | 标题、正文、价格 |
| 条目(Entry) | 集合中保存的一条具体记录 | 某一篇已发布的文章 |
例如一个 Posts 集合可以长这样:
Posts ├── Title 短文本,必填 ├── Excerpt 长文本,可选 ├── Content 富文本,可选 └── Featured image 图片,可选数据库自动存储这套模型,后台则根据它构建编辑器表单——模型即表单,所见即所得。
第一步:登录后台,找到内容类型入口
- 打开你站点地址下的
/_emdash/admin并登录; - 在左侧边栏找到Content Types(内容类型)入口。
这是管理员专属区域:只有 Admin 角色可以修改内容模型,而 Editor 等角色只能管理内容本身,权限边界清晰(参见 admin-panel.mdx)。
第二步:创建你的第一个集合
点击新建集合,只需填写三项身份信息:
- 复数标签:显示在后台的名称,如Blog Posts;
- 单数标签(可选):如Blog Post;
- Slug(标识符):如
posts,用于查询、API 和数据库。
⚠️Slug 请想好再填——它一旦创建就不能修改,因为已有查询和数据库列都依赖它。Slug 只能以小写字母开头,包含小写字母、数字和下划线,最长 63 个字符。
接着按需开关集合行为(见 collections.mdx):
| 行为 | 作用 |
|---|---|
| Routable | 要求公开 slug,可配置带日期的 URL 模式 |
| Drafts | 允许先存草稿再发布 |
| Revisions | 保留内容历史快照,支持一键回滚 |
| Preview | 为未发布内容提供签名预览链接 |
| Search / SEO | 启用全文搜索 / 自动生成 SEO 元数据 |
| Edit locking | 防止多人同时编辑同一条内容 |
💡 建议:只开启网站真正用到的行为,保持模型精简。
第三步:添加字段——17种字段类型全可视化
进入集合编辑后,你可以像搭积木一样逐行添加字段。EmDash 内置 17 种字段类型,全部通过下拉菜单选择,无需写代码:
| 内容需求 | 字段类型 | 编辑器中的样子 |
|---|---|---|
| 短文本 / 长文本 | string、text、slug、url | 文本框、多行文本域 |
| 数字 | number、integer | 小数或整数输入框 |
| 状态与时间 | boolean、datetime | 开关、日期时间选择器 |
| 固定选项 | select、multiSelect | 单选/多选下拉 |
| 富文本 / 结构化数据 | portableText、json、repeater、blocks | 块编辑器、可重复字段组 |
| 媒体 | image、file | 媒体库选择器 |
| 关联其他内容 | reference | 跨集合条目选择器 |
每个字段还可以设置必填、唯一、默认值、长度/范围校验、可搜索、可索引、可翻译等规则(完整参考 field-types.mdx)。
保存后,表单会立即按字段类型渲染:短文本变输入框、portableText变富文本编辑器、图片字段直接打开媒体库。
第四步:录入内容并一键发布
模型建好后,左侧边栏会出现你的新集合。创建条目的标准流程:
- 点击集合页的Add New;
- 填写必填字段——有标题字段时,EmDash 会自动为 slug 生成建议;
- 补充正文、封面图、分类等支持字段;
- 点击Save,首次保存生成草稿并打开固定编辑链接;
- 若集合启用了预览,先用Preview查看渲染效果;
- 点击Publish now确认发布,草稿即成为线上版本。
之后每次保存修改都只更新草稿,访客看到的仍是线上版本,直到你点Publish changes——这套"草稿/线上分离"机制让你可以放心改稿(详见 working-with-content.mdx)。
第五步:安全地修改已有模型
网站跑起来后想加字段?直接在Content Types里操作即可,修改即时生效——内容 API、加载器和编辑界面都在运行时读取数据库中的模型(参见 schema-evolution.mdx)。但要分清两类操作的风险等级:
✅安全的变更(随时可做):
- 新增集合、新增字段(可为新字段设默认值)
- 修改标签、描述、校验规则、字段排序
⚠️破坏性变更(先备份再做):
- 删除字段= 删除该列及所有条目的对应值
- 删除集合= 删除整张内容表及全部条目
- 现有字段的类型和 slug 在后台不可直接修改(
string/text/slug三种文本类型之间除外),其他类型变更需要内容迁移
🗑️ 注意区分:把条目移入回收站是可逆的内容操作;而字段/集合的删除是模型层操作,会真正移除数据。
新手常见 3 个坑
- Slug 想改?改不了。创建集合和字段前就把 slug 定好,或新建集合替代旧集合。
- 模型改了,页面却没变化?内容模型决定"数据长什么样",页面展示还需 Astro 组件查询并渲染该集合——模型是数据侧,模板是展示侧。
- 想用代码同步模型?可以用 seed 文件(如 seed/seed.json)描述初始模型,但 seed 只在全新数据库首次启动时生效;线上模型的演化始终通过后台或
emdash schemaCLI 命令完成。
相关文档
- 内容模型概念 —— 集合、字段与 TypeScript 类型生成
- 集合与字段 —— 17 种字段类型与集合行为详解
- 字段类型参考 —— 每种字段的取值与校验选项
- 内容工作流 —— 草稿、定时发布、版本恢复
- 线上模式演化 —— 生产环境安全改模型
掌握这套"集合 + 字段 + 条目"的建模思路后,你可以像搭积木一样为任意主题的网站——博客、电商、作品集——快速定义内容结构,全程零代码。🚀
【免费下载链接】emdashEmDash is a full-stack TypeScript CMS based on Astro; the spiritual successor to WordPress项目地址: https://gitcode.com/gh_mirrors/emdas/emdash
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考