docs: 同步 4f84d31——changelog 補元素分類收斂+ResizeObserver 確認;index 補分類優先序

docs 分支補齊至 main 最新(4f84d31)。「專案整理」changelog 條目補:
・階段二收尾——元素分類單一入口 finder.category(優先序 avoid>pill>isolate>block>
  transparent>opaque;collectRuns/jiyaAdjacency switch(category)、canSplit=SPLITTABLE∩
  transparent、isTransparent=category==="transparent",行為等價、121 全綠)。
・復驗後定性——lineEdge/gapTrim 雙 ResizeObserver 派發序確認為非缺陷(Chrome headless 實測
  回調按 observer 創建序派發,lineEdge 先於 gapTrim 建、resize 恆先派發、不用陳舊半形態;
  註解鎖為不變量、不需改碼)。

index 三分類補分類優先序(finder.category)+md-twin 同步。changelog/index HTML 經 build.sh 重建。
This commit is contained in:
2026-07-07 22:01:00 +08:00
parent 648605ac53
commit 5e74818153
4 changed files with 14 additions and 6 deletions
+4
View File
@@ -39,10 +39,12 @@
<li><strong>跨透明元素邊界避頭尾</strong>(修 #3):避頭類標點落於 <code>&lt;strong&gt;</code> 邊緣(<code>你好&lt;strong&gt;。世界&lt;/strong&gt;</code> 之句末點號位於 strong 首位)時,<code>forbiddenBreak</code><code>edgeCharEl</code> 穿越透明元素下探定位、render 沿透明邊緣上攀處理外層 parent,不再漏綁、誤置行首。</li>
<li><strong>avoid 排除歸一</strong><code>isAvoided</code> 改單一組合入口(自身或祖先),免除「<code>avoidsSelf ‖ isAvoided</code>」易漏一半之誤用(階段一 pill 漏檢即此類)。</li>
<li>小項:<code>scope.include</code> 型別去多餘 <code>| null</code><code>gapTrim</code> 補逐節點功能閘;<code>PASSES</code> 陣列補註執行序。</li>
<li><strong>元素分類單一入口 <code>finder.category</code></strong>(收尾):散落各遍歷原語各自短路之分類優先序,收斂為單一分類器——一元素恰屬 avoidpillisolateblocktransparentopaque 之一,優先序 <code>avoid pill isolate block transparent opaque</code>(帶 <code>data-jz-skip</code> 之 pill → avoid;同命中 pill 與 isolate → pill)。<code>isTransparent</code> <code>category==="transparent"</code><code>collectRuns</code><code>jiyaAdjacency</code><code>switch(category)</code><code>canSplit</code> <code>SPLITTABLE ∩ transparent</code>。行為等價(121 全綠)。</li>
</ul>
<h3>復驗後重新定性(不照單全收)</h3>
<ul>
<li><strong>lineedge 攀穿 isolate——非缺陷</strong><code>edgeRect</code> 為物理版面測量(<code>getClientRects</code>),isolate 斷的是邏輯 run/相鄰,物理行首行尾判定須跨 <code>&lt;mark&gt;</code> 找真實相鄰內容;初評誤判、已還原。</li>
<li><strong>lineEdgegapTrim 雙 ResizeObserver 派發序——確認非缺陷</strong>Chrome headless 實測回調按 observer <strong>創建順序</strong>派發(ResizeObserver 規範遍歷 observers 插入序,非 observe 序;實測 seq=12);<code>lineEdge</code>order 90)之 observer 先於 <code>gapTrim</code>order 92)建、故 resize 時恆先派發,<code>gapTrim</code> 之行末去隙恆基於已套用之半形版面(非陳舊態)。以註解鎖為不變量、不需改碼。</li>
<li><strong>五處幂等收斂——評估後不做</strong>:各檢查不同位置關係(祖先/父/子),無單一 <code>isJz</code> 形狀可全覆蓋,強行歸一徒增風險。</li>
</ul>
<h3>文檔(本次)</h3>
@@ -237,9 +239,11 @@
- 跨透明元素邊界避頭尾 #3句末點號落於 <strong> 首位你好<strong>世界</strong> forbiddenBreak edgeCharEl render 沿 parent
- avoid 排除歸一isAvoided 改組合入口自身或祖先avoidsSelf isAvoided漏一半
- 小項scope.include 去多餘 |nullgapTrim 補功能閘PASSES 補註執行序
- 元素分類單一入口 finder.category收尾分類優先序收斂為單一分類器avoidpillisolateblocktransparentopaqueisTransparent=category==="transparent"collectRuns/jiyaAdjacency switch(category)canSplit=SPLITTABLEtransparent行為等價
### 復驗後重新定性不照單全收
- lineedge 攀穿 isolate非缺陷edgeRect 為物理測量須跨 mark 找真實相鄰初評誤判已還原
- lineEdge/gapTrim ResizeObserver 派發序確認非缺陷Chrome 實測按 observer 創建序派發規範插入序 observe lineEdgeorder 90先於 gapTrimorder 92resize 恆先派發不會用陳舊半形態註解鎖不變量不改碼
- 五處幂等收斂不做各檢查不同位置關係無單一 isJz 形狀可全覆蓋強行歸一徒增風險
### 文檔