Slate v2 Phase 9 高亮家族兼容矩阵:搜索高亮与投影驱动高亮的替换证明指南
2026/9/15 17:41:08 网站建设 项目流程

Slate v2 Phase 9 高亮家族兼容矩阵:搜索高亮与投影驱动高亮的替换证明指南

【免费下载链接】plateRich-text editor with AI and shadcn/ui项目地址: https://gitcode.com/GitHub_Trending/pl/plate

本文基于仓库中的 Phase 9 Highlight Matrix 计划 展开,深入拆解 Slate v2 在 Phase 9 阶段如何通过"替换兼容矩阵"(replacement compatibility matrix)扩展 highlight / decoration 家族的覆盖范围:既保留遗留的search-highlighting行,又新增当前投影驱动的highlighted-text行,并通过跨仓库本地 runner 完成 Chromium 浏览器证明。读完本文,你将掌握该矩阵的定位、约束边界、验证命令与家族现状的解读方法,以及如何在 master-roadmap.md 与 decoration-roadmap.md 的路线图栈中追踪这些行是否真正落地。

一、背景:Phase 9 替换包络与高亮矩阵的定位

在 Slate v2 的迁移路线中,"Phase 9" 承担的是替换包络扩张(replacement-envelope expansion)工作:逐家族扩大"当前实现可以替换遗留实现"的兼容性矩阵。高亮 / decoration 家族是其中的一个关键切面,因为高亮类功能横跨搜索命中、代码语法着色、AI 建议、审阅评论等多种真实产品场景,是验证"投影驱动渲染"(projection-driven rendering)能力是否达标的试金石。

本计划文档 2026-04-06-slate-v2-phase9-highlight-matrix.md 被标注为status: complete,即它是一份已经执行完毕的支持性计划(Supporting plan)。文档明确声明:关于当前队列与路线图的最终事实,以 master-roadmap.md 为准。因此在阅读本矩阵时,应当把它当作"某一阶段切片"而非全局真相来源。

二、目标与范围:矩阵如何被扩展

2.1 目标

计划的目标非常收敛:继续推进 Phase 9 替换包络扩张,拓宽 highlight / decoration 家族的兼容性矩阵。这里的"矩阵"不是产品功能清单,而是"当前实现 vs 遗留实现"的替换兼容性证据表——每一行代表一个示例(example)及其在 Chromium 中的浏览器证明状态。

2.2 范围:两行并存,而非覆盖

本次切片对矩阵做的是增量修改,范围明确为三件事:

操作说明
保留遗留行继续保留既有的 legacysearch-highlighting行,不做删除或合并
新增当前行新增当前(current)highlighted-text行,代表投影驱动的高亮表面
同步文档若新行干净落地,则同步更新 scoreboard 与顶层 v2 文档,使该切片在路线图栈中可见

这种"新旧各行、并存演进"的做法,正是替换矩阵的核心方法论:不追求让当前行在字面上复制遗留行的产品形态,而是用矩阵逐行呈现家族级的事实(family-level truth)。

从 decoration-roadmap.md 的示例清单可以看出,高亮家族实际由三个兄弟示例构成,它们在该路线图中被并列管理:

  • search-highlighting—— 遗留搜索高亮示例
  • code-highlighting—— 代码语法着色示例(对应独立的 phase9-code-highlighting-matrix 计划)
  • highlighted-text—— 当前投影驱动的高亮文本示例

三、约束:拒绝"伪造的直接对等声明"

本矩阵最值得注意的设计约束有三条,它们共同定义了矩阵的证据纪律:

  1. 禁止伪造直接对等:不得在旧的搜索 UI 与当前的投影驱动高亮表面之间做出虚假的"直接对等"(fake direct parity)声明。两者的内部机制不同——遗留路径走decorate+renderLeaf,当前路径走projectionStore+renderSegment——因此矩阵记录的是"当前实现能覆盖该家族能力"的事实,而不是"两者产品形态完全一致"的承诺。

  2. 矩阵呈现家族级事实:矩阵的价值在于让读者一眼看到当前家族覆盖的真实状态(哪行已恢复、哪行是扩展、哪行仍漂移),而不是把新老两套实现强行等价。

  3. 通过跨仓库本地 runner 验证:所有结论必须以浏览器内证明为准,验证通道是run-cross-repo-local.sh脚本,运行在固定端口3010上。

这条约束在 example-parity-matrix.md 中有清晰的印证——遗留search-highlighting行在恢复遗留的 search/decorate 流程后,状态被标记为recovered(已恢复),但其剩余漂移被如实记录为"当前的projectionStore+renderSegment接线替代了遗留的decorate+renderLeaf",同时注明"两个高亮匹配的浏览器证明为绿色"。这正是"记录家族级事实、不掩盖机制差异"的实例。

四、进展与验证:跨仓库本地 runner 实测

4.1 本次切片完成的四件事

计划的 Progress 部分列出了本次切片的实际交付:

  1. 向替换兼容矩阵新增了一行当前highlighted-text
  2. 通过跨仓库本地 runner 证明了扩展后的矩阵;
  3. 同步了 scoreboard 与顶层 v2 文档,使该 Phase 9 切片在路线图栈中可见;
  4. 执行了验证命令(详见下节)。

4.2 验证命令逐段拆解

计划文档给出了完整的验证命令,这是本矩阵可复现性的核心:

bash ./scripts/run-cross-repo-local.sh 3010 /examples/rich-inline ../slate 3210 /examples/search-highlighting "yarn build:slate-browser:playwright && yarn exec playwright test playwright/integration/examples/replacement-compatibility.test.ts --project=chromium --workers=1"

各参数含义如下:

参数含义
3010当前(current)仓库示例的本地端口
/examples/rich-inline当前仓库中用于替换证明的示例路径
../slate遗留(legacy)Slate 仓库的相对位置(跨仓库对比)
3210遗留仓库示例的本地端口
/examples/search-highlighting遗留仓库中的搜索高亮示例
引号内的长命令在 Chromium 上执行 Playwright 集成测试:先构建 slate-browser 的 Playwright 产物,再以单 worker 运行replacement-compatibility.test.ts

要点解读:

  • 跨仓库:验证需要同时启动两个仓库的示例服务(端口30103210),这正是"替换兼容"必须对照遗留实现实测的原因;
  • 串行构建 + 单 worker--workers=1保证浏览器证明的确定性,避免并行干扰;
  • 测试文件命名replacement-compatibility.test.ts是替换兼容矩阵的通用证明入口,位于 legacy 仓库的playwright/integration/examples/目录下。

五、矩阵落地后的现状:从路线图与台账交叉验证

矩阵的"同步 scoreboard 与顶层文档"环节,保证了落地结果可以在多份文档中互相印证。以下四份仓库证据共同构成了高亮家族的当前状态快照:

  1. master-roadmap.md:将highlighted-text列为 required v2-only example/browser 行之一(tranche-6 已 live 且 green,tranche-7 作为已落地的 north-star proof 行保留),并注明"package/runtime 闭包不再是主要阻塞"。

  2. replacement-gates-scoreboard.md:给出可复现的测试命令bunx playwright test ./playwright/integration/examples/highlighted-text.test.ts --project=chromium,并记录"全部四个 v2-only example/browser 行在 Chromium 中均为绿色"。

  3. ledgers/example-parity-matrix.md:提供逐行的细粒度台账——search-highlightingrecovered(已恢复),highlighted-textextended(扩展);search-highlighting的相似度数据为0.170,属于"source-close recovered row"。

  4. decoration-roadmap.md:把三个高亮示例与其对应测试(search-highlighting.test.tscode-highlighting.test.tshighlighted-text.test.ts)并列列出,并给出了跨节点高亮源"无需手动 leaf 扇出"等能力结论,同时记录了bench:replacement:search-highlighting:local等基准命令用于对比新旧实现的开关性能。

5.1 如何阅读这些状态词

在替换矩阵语境中:

  • recovered:遗留示例的源码形状已尽量恢复,浏览器证明为绿色,但内部接线机制与遗留不同(如 projection 驱动 vs decorate 驱动),属"可替换、但机制不同";
  • extended:当前实现专属的新增行,无遗留直接对应物,代表家族能力在当前实现上的扩展覆盖;
  • green in Chromium:以 Playwright 在 Chromium 上的端到端证明为准,这是矩阵中"已验证"的唯一权威口径。

六、给矩阵使用者的实践建议

  1. 区分"矩阵行"与"产品功能":矩阵行回答"当前实现能否替换遗留实现的该示例",不代表产品形态对齐。若你的目标是迁移遗留搜索 UI,应关注search-highlighting行的recovered状态与剩余漂移说明;若你要在新实现上落地纯投影驱动高亮,则看highlighted-text行。

  2. 复现证明时保持端口纪律:当前仓库端口3010、遗留仓库端口3210,任何对矩阵状态的更新都应在本地 runner 上实测后写入,而不是仅凭代码阅读下结论。

  3. 以 master-roadmap 为最终事实:本矩阵是阶段切片,路线图整体状态(tranche 归属、阻塞项、下一批工作)请以 docs/slate-v2/master-roadmap.md 为准,并以 docs/slate-v2/replacement-gates-scoreboard.md 的 scoreboard 作为门禁口径。

七、总结

Phase 9 高亮矩阵切片展示了 Slate v2 替换工程的一种成熟工作方式:用"矩阵 + 跨仓库浏览器证明 + 台账同步"三步闭环,逐家族推进替换包络。在 highlight / decoration 家族上,它做到了保留遗留search-highlighting行、新增当前highlighted-text行、同步 scoreboard 与路线图,且全程恪守"不伪造直接对等、只呈现家族级事实"的约束。对于任何需要评估"当前实现能否接手遗留高亮功能"的开发者,这份矩阵(及其背后 decoration-roadmap.md 的能力清单与 example-parity-matrix.md 的逐行台账)都是可以直接引用的证据源。

【免费下载链接】plateRich-text editor with AI and shadcn/ui项目地址: https://gitcode.com/GitHub_Trending/pl/plate

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询