Malla文档

CMS

集合、字段、条目、富文本、草稿、定时发布、版本和动态模板页面。

用户指南

CMS 用来存放结构化内容:博客文章、产品、团队成员、案例研究、招聘职位。编辑者在简洁的内容视图中工作,设计师则可以放心,布局不会被破坏。

集合和字段

打开 CMS 工作区,点击 New collection。每个集合一开始都带有标题和 slug 字段;再添加你需要的其他字段。

Text纯文本,单行或多行。
Rich text标题、列表、引用、代码、链接和图片。
SlugURL 片段,由某个文本字段自动生成。
Image带替代文本的已上传图片。
File任意已上传的文件。
Reference另一个集合中的一个条目。
Multi reference另一个集合中的多个条目。
Number普通数字、货币或百分比。
Date日期和时间。
Toggle开或关。
Option从固定列表中选择一个值。
Color一个 CSS 颜色。
LinkURL 或站点内路径。
Video URLYouTube、Vimeo 或视频文件。

字段可以设为必填,也可以设置校验规则和默认值。修改集合的字段后,变更会直接生效到已发布站点,无需整站重新发布。

条目

条目视图是一个可搜索的表格,带有状态筛选和批量操作。点击 New item,或打开某个条目,即可在侧边面板中编辑。在你手动修改之前,slug 会根据标题自动生成。

条目生命周期
草稿工作副本。只有编辑者能看到。
已定时在选定的时间自动发布。
已发布访客看到的线上副本。
已归档保留下来,但不在站点上显示。
  • Save 把你的修改保存为草稿。线上站点继续显示已发布的副本。
  • Publish 把草稿复制为线上副本。Unpublish 把它从站点上撤下。
  • Schedule 选择日期和时间;条目会在那时自动发布。
  • Versions 列出之前的保存记录;可以恢复其中任意一个。

富文本

富文本以结构化内容保存,从不保存原始 HTML,因此渲染时始终是安全的。在画布上,Rich text 元素会渲染一个富文本字段,并按标签应用站点的类(例如每个 h2 都会得到 heading-md)。

在页面上显示内容

  1. 添加集合列表

    插入一个 Collection list 并选择集合。在检查器中设置筛选、排序和数量限制。

  2. 设计一张卡片

    列表的第一个子元素就是模板。只需设计一次,它会为每个条目重复。

  3. 绑定字段

    把文本绑定到 item.title,图片绑定到 item.cover,链接则在它的 快捷选项中选择 Item page 绑定到条目的页面(参见链接列表条目)。展开的引用会给出被引用的条目,所以 item.author.name 也能用。

在底层,列表会通过内置的 CMS 集成运行一个 CMS 查询:

json
{
  "operation": "cms.list",
  "input": {
    "collectionId": "col_posts",
    "filter": [{ "field": "featured", "op": "eq", "value": true }],
    "sort": [{ "field": "date", "dir": "desc" }],
    "limit": 6,
    "expand": ["author"]
  }
}

模板页面

模板页面有一个动态路径,例如 /blog/:slug,并且属于某个集合。它会为每个已发布的条目渲染一次,每个绑定中都可以使用 item。把页面的 SEO 标题和描述绑定到条目字段,例如 item.title + ' | Blog'。在检查器中选择要在画布上预览的条目。

发布机制

发布一个条目不会重新发布整个站点。只有依赖该集合的页面,即它的模板页面以及查询它的列表,才会重新渲染。参见发布。

内容编辑者

为撰稿人分配内容编辑者角色。他们可以编辑 CMS 条目和画布上的文本,但不能修改设计、数据或逻辑。参见团队与角色。