客户建站平台开发说明书
项目计划 →
05|建站生产核心

页面编辑、CMS与版本系统

页面树、可视化编辑、结构化内容、多语言、预览、审核和版本回滚。

PAGE-MODEL

页面树与路由

P0
使用角色:客户编辑、内部制作人员
页面:页面树、页面设置、导航、页脚、重定向
模块目标

管理网站页面、层级、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读取其他站点。
VISUAL-EDITOR

可视化编辑器

P0
使用角色:客户内容编辑、站点管理员、制作人员
页面:画布、组件库、图层、属性、主题、响应式、历史记录
模块目标

在受控组件模型内完成页面设计,保证模板升级、响应式和安全。

主流程

加载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

结构化CMS与多语言

P0
使用角色:客户编辑、制作人员、审核人员
页面:产品、分类、新闻、案例、下载、自定义内容模型、多语言
模块目标

让重复内容结构化管理并被多个页面组件稳定调用。

主流程

选择内容模型→创建内容→填写主语言→上传媒体→翻译→审核→随站点版本发布。

关键规则
  • 内容模型由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。
  • 客户接口不能返回内部备注和审核意见。
VERSION

预览、版本与分支

P0
使用角色:客户发布人、审核人员、运维
页面:预览、改版分支、版本差异、提交审核、历史版本
模块目标

把编辑草稿、审核版本和线上版本严格隔离,支持安全回滚。

主流程

草稿→创建预览构建→提交审核锁定快照→审核通过→生成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过期或撤销后无法访问。