R4.2: where Typora and GitHub read a file apart, ElyMark follows GitHub (user, 2026-10-13)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
962f274cc6
commit
c4cb075ce3
4 files changed
+32
-2
No files matched your search
@@ -0,0 +1,15 @@
|
||||
FAIL
|
||||
|
||||
1. [P2] `../Ely-GPUI-Components/src/documents/tree/mod.rs:308` — 对 markdown-rs 已解码的所有 Text 再替换表情,丢失转义及自动链接语义。实测 `Show \:smile: literally.` 和 `Show :smile: literally.` 均显示为 `Show 😄 literally.`;`<https://example.test/:smile:>` 的地址文字也被替换成表情。Typora 的转义、实体和自动链接各自成词元,不再参与短码转换。应按原始源码及语法上下文识别短码,保留这些字面文本,并补回归测试。三个失败断言见 `.work/R4.2-r1/probes.log`。
|
||||
|
||||
2. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:42` — 标签名在连字符处截断,把未知标签当成已支持标签。实测 `a <u-box>word</u-box> tail` 给 `word` 加下划线;`a <br-box>inside</br-box> end` 变成两次换行,违反 R4.2「其余标签只显示文字」。Typora 的标签名规则包含连字符。应读取完整标签名后精确匹配,并覆盖这些未知标签。
|
||||
|
||||
3. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:82` — HTML 属性值未解码字符引用,链接点击会收到错误地址。实测 `<a href="https://example.test/search?q=one&page=2">results</a>` 保存的链接仍含 `&`,第二个查询参数因此成为 `amp;page`。应按 HTML 属性语义解码命名及数字字符引用,再交给链接处理器;补充目标地址的断言。
|
||||
|
||||
4. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:50` — 对整个属性串执行 `trim_end_matches('/')` 会删除未加引号属性值里的有效斜杠。实测 `See <a href=/path/>results</a>.` 的目标从 `/path/` 变成 `/path`;Typora 的规则将该斜杠保留在属性值中。应在解析属性时区分标签结束符与属性内容,保留完整 href,并补此用例。
|
||||
|
||||
5. [P2] `../Ely-GPUI-Components/src/documents/tree/mod.rs:134` — 所有支持的标签都读取 `href`,随后 `close` 将它加入可点击链接。实测 `See <b href="https://example.test/">bold</b>.` 的 `bold` 除加粗外还会打开网址,但 `b` 的该属性没有链接语义。应仅为 `a` 标签记录链接地址,其他格式标签不得产生链接;补充非锚点标签带 href 的测试。
|
||||
|
||||
6. [P3] `../Ely-GPUI-Components/src/documents/tree/html.rs:34`、`../Ely-GPUI-Components/src/documents/tree/mod.rs:75` — 两条新增注释分别为 11 个英文单词,超过本轮明确要求的十词上限。按空白分词即可复现,记录见 `.work/R4.2-r1/comments.log`。应各压缩至十词以内。
|
||||
|
||||
清理例外:自动审批审查拒绝 PowerShell 删除临时副本、归档和临时文件,仅返回 `blocked by policy`。已用 `cargo clean` 删除两个独立构建目录;仍留有项目内 `.work/R4.2-r1/source/`、`.work/R4.2-r1/parser/`、`.work/R4.2-r1/tmp/`、`.work/R4.2-r1/source.tar`。完整库测试 1874 项通过,原生及 WebAssembly Clippy、格式检查通过;构建、探针及核验日志在 `.work/R4.2-r1/`。
|
||||
@@ -0,0 +1,15 @@
|
||||
FAIL
|
||||
|
||||
1. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:119` — 字符引用扫描反复搜索整个剩余字符串,使新增短码处理退化为平方复杂度,即使文本没有短码。优化构建实测:连续 `&` 构成的 128 KiB 段落,仅 `emoji` 扫描就需约 260 ms;1 MiB 需 16.1 秒,而 markdown-rs 解析该 1 MiB 仅需约 230 ms。文档不超过 128 KiB 时走同步解析,已超过 PRD 的 100 ms 主线程阻塞上限。应按字符引用的合法字符及长度界限扫描,遇非法字符即停止,避免对每个 `&` 重扫后缀,并覆盖长文本的增长行为。数据见 `.work/R4.2-r2/probes.log`。
|
||||
|
||||
2. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:117` — HTML 属性复用了 CommonMark 字符引用规则,上一轮的普通 `&` 案例已修复,但合法 HTML 地址仍会解错。`<a href="https://x.test/?q=one&page=2">result</a>` 的地址仍含 `&page=2`,应为 `&page=2`;`<a href="/€">result</a>` 得到 `/�`,HTML 应为 `/€`。Typora 将属性交给 DOM 解析。应区分 HTML 属性与 Markdown 正文的解码规则,覆盖无分号数字引用及 HTML 的控制码映射;保留正文短码的转义语义。失败断言见 `.work/R4.2-r2/confirmed-probes.log`,独立 HTML5 解析结果见 `html-oracle.log`。
|
||||
|
||||
3. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:194` — 直接使用 `emojis` 的短码表,未覆盖 Typora 1.14.10 的默认名称和含义。实测 `:blonde_man:`、`:person_with_blond_hair:`、`:person_with_pouting_face:`、`:person_frowning:` 全部保持源码,Typora 分别输出 👱、👱、🙎、🙍;`:cricket:` 则由 Typora 的板球 🏏 变成昆虫 🦗。应对齐指定版本的短码映射,并对这些名称及含义建立回归断言。证据见 `.work/R4.2-r2/confirmed-probes.log` 与 `typora-tokenizer.log`,原表在 `frame.js:22342` 起。
|
||||
|
||||
4. [P2] `../Ely-GPUI-Components/src/documents/tree/mod.rs:124` — HTML 关闭标签只能匹配当前 Markdown 容器内的打开标签,配合先解析 Markdown 的顺序,会忽略有效的 `</u>` 并让样式延伸至段落末尾。实测 `a <u>*text</u> outside* end` 显示为 `a text outside end`,`text outside` 被斜体化,连 `end` 都带下划线。Typora 的 `underline` 规则先匹配整对 `<u>...</u>`:应显示 `a *text outside* end`,仅 `*text` 带下划线。应按该规则处理标签与 Markdown 的解析优先级,确保关闭位置及字面标记正确,并加入交叉边界测试。两侧结果见 `.work/R4.2-r2/confirmed-probes.log`、`typora-tokenizer.log`。
|
||||
|
||||
5. [P2] `../Ely-GPUI-Components/src/documents/tree/html.rs:85` — 无引号属性值以所有 Unicode 空白为分隔符,会截断 HTML 允许出现在值内的字符。在 `/a` 与 `b` 之间放实际的 U+00A0:`See <a href=/a b>result</a>.`,实测链接目标只剩 `/a`;Typora 的标签规则和 HTML5 解析均保留完整 `/a b`。应按 HTML 的 ASCII 空白规则读取、跳过属性分隔符,保留其余 Unicode 字符,并断言完整地址。证据见 `.work/R4.2-r2/confirmed-probes.log`、`html-oracle.log`。
|
||||
|
||||
6. [P2] `../Ely-GPUI-Components/src/documents/tree/mod.rs:114` — `br` 的开始和关闭标签都无条件追加换行。实测 `before<br></br>after` 变成两次换行,多出空行;Typora 的 `br` 规则将 `<br></br>` 合成一个换行词元。应按该规则处理紧随的关闭标签,避免重复换行,并补配对写法的回归测试。失败断言及原分词结果见 `.work/R4.2-r2/confirmed-probes.log`、`typora-tokenizer.log`。
|
||||
|
||||
清理例外:自动审批审查拒绝了已校验路径的 PowerShell 删除命令,仅返回 `blocked by policy`。已通过 `cargo clean` 删除两个独立构建目录;仍留有项目内 `.work/R4.2-r2/source/`、`parser/`、`html-oracle/`、`tmp/`、`source.tar`、`typora-tokenizer.cjs`。本轮完整库测试 1878 项通过,原生及 WebAssembly Clippy、格式检查通过;上一轮原始失败断言全部通过,记录在 `.work/R4.2-r2/validation.log`。
|
||||
Reference in new issue
Block a user