From e3296104a6502da455d1e359ae9bbc8bdc8c67ca Mon Sep 17 00:00:00 2001 From: commilitia Date: Tue, 7 Jul 2026 21:05:25 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=88=E6=A1=88=E6=95=B4?= =?UTF-8?q?=E7=90=86=E9=9A=8E=E6=AE=B5=E4=BA=8C=E2=80=94=E2=80=94=E9=80=8F?= =?UTF-8?q?=E6=98=8E=E5=88=A4=E5=AE=9A=E5=96=AE=E4=B8=80=E7=9C=9F=E7=9B=B8?= =?UTF-8?q?=E6=BA=90=EF=BC=8B=E8=B7=A8=E9=80=8F=E6=98=8E=E9=82=8A=E7=95=8C?= =?UTF-8?q?=E9=81=BF=E9=A0=AD=E5=B0=BE=EF=BC=8Bavoid=20=E6=8E=92=E9=99=A4?= =?UTF-8?q?=E6=AD=B8=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 承階段一之下游審計。核心貫穿問題:「透明穿越」判定實有兩套口徑散落各處,抵觸 finder 檔頭「所有遍歷共用同一判定」之聲明。用戶抉擇:**嚴格白名單**(未知行內標籤=邊界, 透明須顯式登記 styleInlines)。 透明判定單一真相源(2a): ・transparentInline 提升為公開 isTransparent,作邏輯文本流之單一透明判定。 ・collectRuns 改由 isTransparent 判定——未在 styleInlines 之未知行內標籤(如 寫字

"); + createJuzhen({ jiya: false, longWord: false, jinze: false }).render(a.document.body); + assert.equal(countTag(a.document.querySelector("p"), "jz-hws"), 0, + "預設 button 為邊界:內外不相鄰、無跨界中西隙"); + + // 顯式登記 styleInlines → 透明穿越:好↔Neo、Neo↔寫 兩處中西邊界補隙。 + const b = setupDom("

你好寫字

"); + createJuzhen({ jiya: false, longWord: false, jinze: false, styleInlines: [ "BUTTON" ] }) + .render(b.document.body); + assert.equal(countTag(b.document.querySelector("p"), "jz-hws"), 2, + "登記後透明穿越,跨界補中西隙"); +}); + test("問題六:相鄰兩 pill——descend 不刺穿,jz-hws 絕不插入公式內部", () => { const { document } = setupDom("

公式" + KATEX + KATEX + "文字

");