用途
本技能在 Umbraco 17+ 中配置一个块编辑器数据类型:定义它提供哪些块、各块带哪些设置、块放在哪里、数量上限是多少,以及使用该数据类型的属性。工作方式以需求为先:先把变更写成文档,停下来等待用户批准,然后应用,最后回读验证。
块本身(内容元素,以及带样式选项时的设置模型和子项)由 umbraco-add-block 创建,单个元素由 umbraco-add-element-type 创建;本技能负责把它们注册到块区域中。
两种方法
- 方法 A:按排版区域使用 Block Grid:这是页面区域的默认选择。编辑人员可以从多种块中选择内容放在哪里。即使当前这些块总是纵向堆叠、占满整行宽度,也建议使用 Block Grid;因为 Block List 区域之后若想改为 Block Grid,就必须迁移内容,而 Block Grid 可以先只放占满整行宽度的块。
- 方法 B:按重复器使用 Block List:适用于编辑人员要添加更多同类项的场景,例如 Accordion 面板、轮播幻灯片、关键事实等。
两者可以组合:一个排版区域(A)可以提供一个父块,该父块内部的子项使用重复器(B),例如手风琴组件。每个数据类型按各自的方法配置。
如何选择:如果编辑人员要从多种块中选择内容放在哪里,就选 A;如果编辑人员要添加更多同类项,就选 B。如果项目已经对页面区域使用了 Block List,应遵循项目现有约定,并说明它偏离了哪条约定。
使用方式
两种方法都可以通过 Umbraco Developer MCP 操作(前提是已经连接),也可以依据同一份需求文档手工完成。技能文档要求同时安装 umbraco-content-model-conventions(规则来源)与 umbraco-content-requirements-documentation(需求文档格式与六步工作流);如果其中一个链接无法读取,应停止并说明。
当被其他技能调用时(目前 umbraco-add-page 与 umbraco-add-block 会以方法 A 调用它),只执行第 1 到第 3 步:检查、决策并写出数据类型页面(Create 或 Update),然后交回页面、依赖标记与检查清单行;不等待批准,也不执行应用,变更集、审批关口与应用由调用方负责。从其他技能调用时,不会移除块,也不会收紧限制。
主要规则
- 两个允许不同块的区域应使用两个数据类型,这样修改一个不会影响另一个。
- 注册块时一并注册其设置模型;没有样式选项的块以 settings 为 – 注册。
- 添加块是安全的;移除块或收紧限制会影响已经使用该数据类型的页面,应先查看使用情况,绝不能移除仍被内容使用的块。
- 限制定义在数据类型中,而不是属性的验证中。
- “直接加到网格里”只是变更请求,并不等于用户批准了尚未看到的需求文档。
适用场景与限制
适用于 Umbraco 17+ 项目的块编辑器配置,尤其是由 umbraco-add-page、umbraco-add-block 触发的块区域注册。编辑器与编辑器 UI 别名(Umbraco.BlockGrid、Umb.PropertyEditorUi.BlockGrid、Umbraco.BlockList、Umb.PropertyEditorUi.BlockList)取自 Umbraco 17.5.3 包;MCP 工具名称以已连接的工具列表为准。本技能不包含代码和资产,其书面需求文档由 umbraco-content-requirements-documentation 中的 linter 检查;相关验证未在真实站点上运行。