跳到正文

ADR-0046:显式列表标记样式 ​

  • 日期:2026-10-16
  • 状态:接受
  • 范围:列表模型、语义降低、模板绑定与 DOCX

问题 ​

既有列表前缀固定使用 InlineStyle.of(format.fontSize())。只为 XML 正文增加默认角色/颜色会让编号继续使用旧字体,完整富文本首运行也不能代表标记设置意图。

决策 ​

NumberedItem/BulletItem 末尾增加非空完整 markerStyle。保留原构造器与工厂,其默认值按原段落字号派生。新增 Builder、同步嵌套回调、toBuilder 与显式默认恢复。设置意图只在 Builder 内记录,模型保存完成值。

语义降低单独添加标记运行,正文运行/外链保持;纯文字且标记精确等价于旧默认时继续旧路径。此比较只是等价输出优化,不用来判断继承意图。模板复制直接传播标记,编号计数、引用值与文本预算算法保持。

DOCX 输出标准 level 运行属性并收集 marker-only 角色。导入检查整个编号部分并读取所选 level;未知支持边界返回显式损失,畸形身份/容器/数值拒绝。默认与角色映射沿用既有契约,不扩展为通用 Word 样式继承。

影响 ​

标记与正文的真实字体、RGB、字号、偏移和装饰可独立表达,XML 默认样式可以正确覆盖前缀。公共 record 形状改变须公开登记,保留旧构造器不能据此宣称无破坏兼容。没有新增依赖、模块或外部资源。验收见阶段三十九。