datocms-content-modeling
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDatoCMS Content Modeling
DatoCMS内容建模
Principles for designing structured content in DatoCMS that's reusable, editor-friendly, and survives redesigns. This skill answers "how should I model X?" — not "how do I create the model?".
为DatoCMS设计可复用、编辑器友好且能适应重设计的结构化内容的原则。本技能解答的是**“我应该如何建模X?”——而非“我如何创建该模型?”**。
When to apply
适用场景
- New project content model layout
- Model vs block decisions
- Choosing ,
single_block,rich_textfor block fieldsstructured_text - Reusable model link vs embedded block
- Taxonomy design: categories, tags, hierarchies, facets
- Refactor page-shaped, redesign-fragile, duplication-heavy schemas
- Diagnose record-size/block-count/nesting-depth limits; design around locale-multiplied block volume
- Admin UI organization: Content tab menu (editors), Schema tab menu (devs), saved views via
item_type_filter - Model behavior/presentation config: singleton, sortable, tree, draft-mode, all-locales-required; vs
presentation_title_field;title_field; orderingcollection_appearance - Field config: validators, choices (
appearance+string_select,enumvsframedframeless,single_blockvslink_select); editor parameters (slug auto-fill,link_embednodes/marks, SEO previews,structured_text)required_alt_title
- 新项目内容模型规划
- 模型与区块的决策选择
- 为区块字段选择、
single_block、rich_textstructured_text - 可复用模型链接与嵌入区块的选择
- 分类法设计:分类、标签、层级结构、分面
- 重构页面型、易受重设计影响、重复内容过多的schema
- 诊断记录大小/区块数量/嵌套深度限制;针对多语言环境下的区块容量进行设计适配
- 管理UI组织:内容标签页菜单(面向编辑器)、Schema标签页菜单(面向开发者)、通过创建保存视图
item_type_filter - 模型行为/展示配置:singleton、可排序、树形结构、草稿模式、all-locales-required;与
presentation_title_field对比;title_field;排序设置collection_appearance - 字段配置:验证器、选项(
appearance+string_select、带框架与无框架enum、single_block与link_select);编辑器参数(slug自动填充、link_embed节点/标记、SEO预览、structured_text)required_alt_title
Core principles
核心原则
- Content is data, not pages. Structure for meaning, not presentation.
- Single source of truth. Avoid content duplication.
- Don't recreate built-ins. Record meta (,
created_at, …), asset meta (published_at,alt,title,custom_data), and ordering (focal_point) all exist already — never add sibling fields, on records or blocks. Seepositionandreferences/separation-of-concerns.md§ Behaviour — ordering.references/model-configuration.md - Future-proof. Design for unknown channels and redesigns.
- Editor-centric. Optimize for editors, not developers. Always add hints to fields, fieldsets, models unless obvious — schema is editor UI. See § Hints.
references/separation-of-concerns.md
- 内容是数据,而非页面。依据内容含义而非展示形式进行结构化设计。
- 单一数据源。避免内容重复。
- 不要重复造轮子。记录元数据(、
created_at等)、资源元数据(published_at、alt、title、custom_data)以及排序(focal_point)均已内置——切勿在记录或区块中添加同类字段。详见position与references/separation-of-concerns.md§ 行为——排序。references/model-configuration.md - 面向未来。为未知渠道与重设计场景进行设计。
- 以编辑器为中心。优先优化编辑器体验而非开发者体验。务必为字段、字段集、模型添加提示,除非含义十分明确——schema本身就是编辑器UI。详见§ 提示。
references/separation-of-concerns.md
Routing
后续流程
Once modeling decision made:
- Implementation — (migrations, default) or
datocms-cli(user opts out of migrations / wants immediate schema mutation).datocms-cma - Querying / rendering — for GraphQL reads and Structured Text query fragments;
datocms-cdafor framework rendering.datocms-frontend-integrations - Validator and cascade-strategy mechanics — (link/structured-text validators,
datocms-cma/references/schema.md, etc.).on_reference_delete_strategy - Building or editing actual DAST tree — (full DAST grammar, dastdown round-trip, typed guards).
datocms-cma/references/editing-records.md
建模决策确定后:
- 实现 —— 使用(迁移,默认方式)或
datocms-cli(用户选择不使用迁移 / 需立即修改schema)。datocms-cma - 查询/渲染 —— 使用进行GraphQL读取与Structured Text查询片段;使用
datocms-cda进行框架渲染。datocms-frontend-integrations - 验证器与级联策略机制 —— 参考(链接/结构化文本验证器、
datocms-cma/references/schema.md等)。on_reference_delete_strategy - 构建或编辑实际DAST树 —— 参考(完整DAST语法、dastdown往返转换、类型守卫)。
datocms-cma/references/editing-records.md
References
参考资料
Mandatory — never propose models, blocks, or fields from memory. Before any structured question or schema suggestion, load every reference whose decision is in scope.
Match decision → file:
- — naming/shaping for meaning, not appearance; redesign test; record-meta + file/gallery-meta + position duplication anti-patterns.
references/separation-of-concerns.md - — model vs block; structural rules (no orphans, no link-field references, locale inheritance); per-record limits (300 KB / 500 blocks / 5 levels); locale multiplier.
references/models-vs-blocks.md - —
references/block-fields-and-structured-text.mdvssingle_block(Modular Content) vsrich_text; inline-vs-block-vs-itemLink-vs-inlineItem matrix; DAST cheatsheet; native nodes (structured_text,blockquote,code,list,heading,thematicBreak) — never recreate as blocks; image/gallery/video block shape (nolinksibling); container-shape effects on limits.caption - — link fields, project-level Blocks Library, built-in
references/content-reuse.md, frameless single-block, tree taxonomies, fieldset grouping, block-library hygiene.seo - — flat tags, tree models, faceted classification via multiple links, cascade strategies.
references/taxonomy-classification.md - — Content tab
references/ui-organization.md(editors), Schema tabmenu_item(devs), saved views viaschema_menu_item, emoji conventions, IA heuristics.item_type_filter - — singleton, draft mode,
references/model-configuration.md, sortable/tree/ordering,all_locales_required,inverse_relationships_enabled,presentation_title_field,presentation_image_field, CDA SEO fallbacks; create-then-wire mechanic.collection_appearance - — validators (enum, format, length, unique,
references/field-configuration.md,slug_title_field,required_alt_title,required_seo_fields, dimensions, structured-text size);transformable_imageeditors (appearance+enum, markdown/wysiwyg/textarea, framed vs framelessstring_select,single_blockvslink_select, structured_text nodes/marks/heading_levels, SEO previews, sluglink_embed, color presets).url_prefix
强制要求 —— 切勿凭记忆提议模型、区块或字段。在提出任何结构化问题或schema建议前,加载所有与决策范围相关的参考资料。
决策对应参考文件:
- —— 依据含义而非外观进行命名/设计;重设计测试;记录元数据 + 文件/图库元数据 + 排序字段重复的反模式。
references/separation-of-concerns.md - —— 模型与区块对比;结构规则(无孤立节点、无链接字段引用、多语言继承);单记录限制(300 KB / 500区块 / 5层级);多语言乘数效应。
references/models-vs-blocks.md - ——
references/block-fields-and-structured-text.md、single_block(模块化内容)与rich_text对比;内联-区块-itemLink-inlineItem矩阵;DAST速查表;原生节点(structured_text、blockquote、code、list、heading、thematicBreak)——切勿重构为区块;图片/图库/视频区块形态(无link同级字段);容器形态对限制的影响。caption - —— 链接字段、项目级区块库、内置
references/content-reuse.md、无框架单区块、树形分类法、字段集分组、区块库规范。seo - —— 扁平标签、树形模型、通过多链接实现分面分类、级联策略。
references/taxonomy-classification.md - —— 内容标签页
references/ui-organization.md(面向编辑器)、Schema标签页menu_item(面向开发者)、通过schema_menu_item创建保存视图、表情符号规范、信息架构启发法。item_type_filter - —— singleton、草稿模式、
references/model-configuration.md、可排序/树形/排序设置、all_locales_required、inverse_relationships_enabled、presentation_title_field、presentation_image_field、CDA SEO回退机制;先创建后关联的机制。collection_appearance - —— 验证器(enum、格式、长度、唯一性、
references/field-configuration.md、slug_title_field、required_alt_title、required_seo_fields、尺寸、结构化文本大小);transformable_image编辑器(appearance+enum、markdown/wysiwyg/textarea、带框架与无框架string_select、single_block与link_select、structured_text节点/标记/标题层级、SEO预览、sluglink_embed、颜色预设)。url_prefix