跳到主要内容

Block Schema 与内容结构

以可演进区块文档表达内容,以稳定节点管理章节顺序、出现位置、重用与已发布修订。

当前状态已可使用

Block Schema、Portable Text 文档、书籍/媒体内容结构、修订历史与完整草稿存储已实现;更多区块与大型导入流程正在开发。

两块互相配合的基石

REZICS 将「内容是什么」与「内容出现在哪里」分开建模。

  • Block Schema 定义一份可渲染文档由哪些带类型的区块组成,以及每个区块如何保留稳定身份、版本与验证规则。
  • 内容结构 定义内容单元的出现位置、父子关系、顺序、目的地与已发布修订。

这个分离让同一篇章节/帖子能在多个位置重用,不必复制正文;每次出现又能有自己的节点 ID、顺序与导航语义。

Block Schema:不是裸 JSON

几乎所有可保存的 JSON 文档都必须先有可辨认的基础对象,而不是把任意 Portable Text 数组直接塞进字段。最基本的 Portable Text 文档具有以下语义:

{
  _type: "portable-text",
  _key: "6 字节/12 位十六进制键",
  content: PortableText,
}

_type 决定解析与渲染协议;_key 让区块在修订、段落评论与结构操作中保持身份;文档版本则在每次结构规范演进时提供明确的迁移边界。格式验证之后仍要进行引用、权限与可见性验证,标识符格式本身不代表目标可读。

已实现的区块家族

当前共享 Block Schema 已能表达 Portable Text、单元引用、完整帖子呈现、单元清单、搜索驱动内容动态、菜单与其他受控内容表面。每个变体都是封闭联合类型的一部分,不允许未知区块在渲染器里默默通过。

专区、停靠区、维基导航与未来可重用文档都建立在这个共同基础上。是否将某份区块文档升格为独立单元,必须由跨所有者重用、独立作者、发布历史或可见性等真实需求证明。

内容结构现在已经能做什么

  1. 为书籍、媒体、帖子、领域分类结构与导航构建具有类型的结构。
  2. 以稳定节点 ID、父节点与分数位置保存大型有序树。
  3. 让节点引用可重用内容单元,并区分内容、单元目的地与外部网址。
  4. 以完整草稿编辑书籍/媒体结构,再将有界变更编译成原子请求。
  5. 保存修订、比较差异,并通过新修订还原旧状态。
  6. 让阅读器把结构投影成目录、上一章/下一章与阅读进度位置。

大型连载与导入

单次结构变更最多编译 10,000 个逻辑命令,限制的是一个原子变更,不是整本书的总节点数。大型网络小说可以把完整树分成多次可恢复写入:每次带入已提交节点与一组有界的新节点,成功后获取下一次需要的修订令牌。

因此大于 10,000 章的作品不需要加载一个无界交易,也不必牺牲冲突检测;导入可以中断后续传,最后再验证完整快照。

正在开发与规划

更多区块变体、跨所有者区块单元、强引用索引、段落级评论、完整大型导入工作流与 GameContentStructure 仍分别处于开发或规划阶段。每一种新区块都必须定义保存、发布、读取、删除、缓存与失败状态。

关系与边界

Block Schema 不是编辑器;内容结构也不是正文。编辑器生成经验证的文档,帖子/章节拥有内容,内容结构安排它们的出现位置,历史则保存已发布修订。