chore(backlog): 记录 g269 完成
This commit is contained in:
@@ -2807,6 +2807,15 @@
|
||||
"status": "done",
|
||||
"domain": "tooling",
|
||||
"notes": "口径踩坑:第一版直接用 verify 既有的全量锚点集合(match(/sec-[a-z0-9-]+/g)),结果把 anchor 演示里故意写的 href: '#sec-missing-zone'(演示「找不到区块自动跳过」)判成孤儿——正则必须只认 section( 定义处。另一坑:改 ua.js 时用 bash 双引号内联 node 写正则,反斜杠被吞成 /section(s*'.../ 直接语法错,整个 CLI 无法加载(docs 也静默失败),改用编辑器直接写正则"
|
||||
},
|
||||
{
|
||||
"id": "g269",
|
||||
"title": "新增文本差异对比组件 diffView",
|
||||
"motivation": "审阅场景(配置改动、变更记录、纠错前后对比)需要「哪几行变了」的视图,此前只能把两段文本并排贴进 pre 让人眼比对。库里有 jsonViewer 看结构、highlight 标关键词,却没有行级差异:这是审阅链路里唯一缺的一环,而它恰恰最依赖「对齐」——人眼对不齐就等于没看。",
|
||||
"acceptance": "新增 diffView(props):before / after 两份文本按行比对,剪公共前后缀后对中间段做 LCS,输出 same/add/del 三类行;增删行同时有底色与行首 + / − 符号两条通道(不只靠颜色),双行号列 user-select:none 不进复制内容;showStats 给 +N / −N,aria-label 自动播报同一组数字;中间段行数乘积 > 40 万时退化为整段替换(语义正确、不卡主线程);样式只消费 --ua-* 令牌(增删底色走 color-mix + --ua-alpha-tint),禁止新增硬编码阴影 / 时长 / 字号;十处落点全同步,npm run check 全绿",
|
||||
"status": "done",
|
||||
"domain": "new",
|
||||
"notes": "对齐分三步:先剪公共前缀、再剪公共后缀、最后才 DP(dp[i][j] 从后往前填,回溯时按「删还是加」比较下一格长度),日常改两行只算中间几行,不会 2000×2000 全表;退化阈值用中间段乘积而不是总行数——总行数大但改动集中时仍然能逐行对齐。踩坑复现:用 bash 内联 node 生成 demo 里的 join(\n) 与嵌套引号,反斜杠被吞成真实换行,esbuild 报 Unterminated string literal,改用编辑器直接写入 + 双引号内层字符串"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -313,3 +313,4 @@
|
||||
{"ts":"2026-10-26T22:50:11+08:00","id":"g266","result":"done","commit":"90bd60e","summary":"新增 JSON 树查看组件 jsonViewer(77→78):按层折叠 + 类型着色 + 计数摘要"}
|
||||
{"ts":"2026-10-26T22:51:24+08:00","id":"g267","result":"done","commit":"cf44880","summary":"补 Windows 强制色高对比兜底:结构补真边框 + 选中态走 Highlight + 占位走 GrayText"}
|
||||
{"ts":"2026-10-26T22:52:36+08:00","id":"g268","result":"done","commit":"9380304","summary":"verify 增加孤儿演示反向校验:demo 里每个 section 必须被某组件 demo 认领"}
|
||||
{"ts":"2026-10-26T22:53:49+08:00","id":"g269","result":"done","commit":"368d47c","summary":"新增文本差异对比组件 diffView(78→79):剪前后缀 + LCS 对齐 + 双通道着色"}
|
||||
|
||||
Reference in New Issue
Block a user