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:
+5
-1
@@ -1,4 +1,4 @@
|
||||
<!-- built with theme=dracula, mode=report, at=2026-07-07T13:21:19Z -->
|
||||
<!-- built with theme=dracula, mode=report, at=2026-07-07T14:00:22Z -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-Hant">
|
||||
<head>
|
||||
@@ -2559,10 +2559,12 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }
|
||||
<li><strong>跨透明元素邊界避頭尾</strong>(修 #3):避頭類標點落於 <code><strong></code> 邊緣(<code>你好<strong>。世界</strong></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>(收尾):散落各遍歷原語各自短路之分類優先序,收斂為單一分類器——一元素恰屬 avoid/pill/isolate/block/transparent/opaque 之一,優先序 <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><mark></code> 找真實相鄰內容;初評誤判、已還原。</li>
|
||||
<li><strong>lineEdge/gapTrim 雙 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>
|
||||
@@ -2773,9 +2775,11 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }
|
||||
- 跨透明元素邊界避頭尾(修 #3):句末點號落於 <strong> 首位(你好<strong>。世界</strong>)時 forbiddenBreak 經 edgeCharEl 下探、render 沿透明邊緣上攀處理外層 parent,不再漏綁。
|
||||
- avoid 排除歸一:isAvoided 改組合入口(自身或祖先),免「avoidsSelf ‖ isAvoided」漏一半。
|
||||
- 小項:scope.include 去多餘 |null;gapTrim 補功能閘;PASSES 補註執行序。
|
||||
- 元素分類單一入口 finder.category(收尾):分類優先序收斂為單一分類器(avoid>pill>isolate>block>transparent>opaque);isTransparent=category==="transparent"、collectRuns/jiyaAdjacency switch(category)、canSplit=SPLITTABLE∩transparent。行為等價。
|
||||
|
||||
### 復驗後重新定性(不照單全收)
|
||||
- lineedge 攀穿 isolate——非缺陷:edgeRect 為物理測量,須跨 mark 找真實相鄰;初評誤判、已還原。
|
||||
- lineEdge/gapTrim 雙 ResizeObserver 派發序——確認非缺陷:Chrome 實測按 observer 創建序派發(規範插入序,非 observe 序);lineEdge(order 90)先於 gapTrim(order 92)建、resize 恆先派發、不會用陳舊半形態;註解鎖不變量、不改碼。
|
||||
- 五處幂等收斂——不做:各檢查不同位置關係,無單一 isJz 形狀可全覆蓋,強行歸一徒增風險。
|
||||
|
||||
### 文檔
|
||||
|
||||
Reference in New Issue
Block a user