页面编辑、CMS与版本系统
页面树、可视化编辑、结构化内容、多语言、预览、审核和版本回滚。
页面树与路由
管理网站页面、层级、URL、导航和多语言对应关系。
创建页面→选择页面类型/布局→配置slug和SEO→加入导航→保存草稿。
- page与page_version分离;线上只读取已发布版本。
- 同语言下slug唯一;改已发布URL必须提示301重定向。
- 首页、404、联系页、隐私页等系统页面有稳定类型,不能只按名称识别。
- 多语言页面用translation_group_id关联,不假定内容字段完全一致。
- 删除被导航/链接引用的页面需展示影响。
- 循环重定向禁止;路由冲突不能保存。
page、page_version、navigation、navigation_item、redirect_rule
POST /sites/{id}/pages;page.saved;navigation.published
- 页面树增删改、排序和多语言关联正确。
- 线上版本与草稿隔离;URL变更重定向生效。
- 无权用户不可通过page_id读取其他站点。
可视化编辑器
在受控组件模型内完成页面设计,保证模板升级、响应式和安全。
加载page_version→拖入组件→编辑props/style→自动保存→设备预览→提交审核。
- 页面由component_instance树构成,组件类型和props遵循版本化Schema。
- 样式优先使用主题Token;自定义CSS/JS只对专业角色开放。
- 自动保存每5–10秒或操作批次触发;显式保存形成检查点。
- 同页面软锁+version乐观锁;冲突显示差异并允许复制为新版本。
- 桌面/平板/手机断点可覆盖有限属性,避免生成不可维护CSS。
- 浏览器断线时保留本地临时草稿并提示未同步。
- 组件版本下架不能破坏已发布站点;安全修复支持迁移。
- 编辑器崩溃后最近服务端草稿可恢复。
component_definition、component_version、component_instance、theme_token、edit_lock、draft_checkpoint
PATCH /page-versions/{id} If-Match;editor.autosave_failed;page.submitted
- 连续编辑30分钟无数据丢失。
- 两人同时修改不会静默覆盖。
- 禁止脚本和危险HTML绕过组件规则。
- 页面在三断点预览结果与发布产物一致。
结构化CMS与多语言
让重复内容结构化管理并被多个页面组件稳定调用。
选择内容模型→创建内容→填写主语言→上传媒体→翻译→审核→随站点版本发布。
- 内容模型由schema版本定义,字段类型、必填、校验和索引明确。
- 内容状态:草稿→待审核→通过→已发布→下架/回收站。
- 翻译状态按语言独立:未开始、翻译中、待审核、完成、过期。
- 批量导入先校验预览,再异步入库;逐行返回结果,重复external_key幂等。
- 删除内容前检查页面/组件引用;回收站保留30天或套餐策略。
- 主语言变更后旧翻译标记“可能过期”,不自动覆盖。
- 大批量导入中断可续传;错误行不回滚正确行。
content_type、content_schema_version、content_item、content_translation、taxonomy、content_reference
content.created/translated/reviewed/published;POST /imports
- 1万条导入按基线≤5分钟并有逐行结果。
- 前端、预览和线上使用相同字段Schema。
- 客户接口不能返回内部备注和审核意见。
预览、版本与分支
把编辑草稿、审核版本和线上版本严格隔离,支持安全回滚。
草稿→创建预览构建→提交审核锁定快照→审核通过→生成release candidate→发布为current_version。
- 审核对象是不可变snapshot;审核期间继续编辑产生新草稿,不影响待审版本。
- 线上版本包含页面、CMS、导航、主题、模板/组件版本和资源清单。
- 回滚创建新的release引用旧产物,不改写历史current_version记录。
- 预览地址使用随机令牌、有效期和访问权限,不允许搜索引擎收录。
- 审核通过后域名/资源状态变化需发布前再次检查。
- 旧版本引用的媒体不能被生命周期任务删除。
site_branch、site_snapshot、preview_build、site_version、release_candidate
POST /sites/{id}/previews;version.approved;release.requested
- 审核内容与发布内容hash一致。
- 任何已发布版本可在目标RTO内恢复。
- 预览URL过期或撤销后无法访问。