// 行內邊界詞元隔離(架構 §6.4/§6.5.1;下游 Bug:行內樣式標記須對排版透明)。 // // 禁則(jinze)與垂懸字(orphan)須把「邊界字/詞元」綁進不可斷之群組(jz-jinze // 之 nowrap、jz-orphan 之 nowrap)。若該邊界字落於樣式行內元素( 等) // 內,舊版**整個元素**入綁——`很長一串粗體,` 會把整串粗體塞進 // nowrap inline-block,行末放不下即整體掉行、上行留巨大空隙;orphan 更可致長元素溢出 // 容器。本模組把邊界詞元**克隆切分**出來,只綁該克隆(最小綁定),原元素其餘部分留在 // 原位,渲染視覺無縫(相鄰同樣式行內元素)。 // // 機制:splitTreeAfter 沿「文本節點 → 邊界元素」之祖先鏈逐層把「切點之後」之內容剝入 // 一個淺克隆(保留標籤/class/style/lang/dir,去 id),克隆作為原元素之後兄弟。克隆 // 標 data-jz-kind="splitoff"+data-jz="",供 revertPass 之延後階段併回原元素(先解 // 包 wrap、後併 splitoff,確保前兄弟為原元素而非 wrap 殼;I6 還原一致)。 // // 僅純樣式行內標籤可切(白名單);帶語義/引用者(A 連結會克隆出兩個錨點、ABBR 之 // title、RUBY 結構、帶 id 者)一律回退整元素綁定——退化但安全。可切性另須諮詢 // finder 三分類(§4.1):pill(整體,如 .katex——KaTeX 全樹皆 SPAN,僅憑標籤名會 // 整棵下潛肢解;下游問題六)、isolate(隔離,帶盒樣式切分有可見接縫)、avoid 自身 // 命中者,皆不可切——回退整元素綁定。 // // 可切性須對「切點 textNode 至 top 之**整條**祖先鏈」成立,非僅 top:下潛由 firstText/ // lastText 守(遇非可切回 null),攀升由 splitTreeAfter 之對稱守衛守(切分前驗祖先鏈全可 // 切)。二者缺一則反例(splitElementAt 之切點取自 orphan 之 collectSubst,可穿透 opaque //