docs: changelog 2026-07-16 塊級分類 CSS 鉤子 data-jz-block-level + 增量塊粒度契約(下游建議七/說明八)
This commit is contained in:
@@ -25,6 +25,20 @@
|
||||
<!-- BODY -->
|
||||
<p class="lede">聚珍(Juzhen)/cjk-autospace 變更紀錄。<a href="./index.html">← 回文檔</a></p>
|
||||
|
||||
<h2>塊級分類 CSS 鉤子 data-jz-block-level + 增量塊粒度契約 <span class="badge accent">2026-07-16</span></h2>
|
||||
<p>下游 HTML 模板消費端新一輪回饋兩項(建議七/說明八):resolved 分類之 CSS 可查鉤子(新功能、向下兼容),與增量 API 使用契約之文檔化。單元測試 140→145 全綠。</p>
|
||||
<h3>建議七:resolved 分類寫回 DOM(levelMark pass)</h3>
|
||||
<ul>
|
||||
<li><strong>動機</strong>:消費端之段落級 CSS(首要 CJK 兩端對齊 <code>text-align:justify</code>)語義上應與段落級 pass(禁則/垂懸)作用於同一集合;level 判定原僅存內部快取、不寫回 DOM,消費端只能另立一份必然漂移之選擇器白名單(實例:<code>.callout</code> 綁了避頭尾卻仍散尾)。</li>
|
||||
<li><strong>機制</strong>:新增 standalone pass <code>levelMark</code>(order 10,恆開)——render 時對每個「直接承載可處理文本」之塊級元素寫 <code>data-jz-block-level="paragraph|text"</code>,revert 全數移除(I6 之 <code>data-jz-*</code> 清單涵蓋)。消費端 <code>[data-jz-block-level="paragraph"]{ text-align: justify }</code> 即與聚珍共用單一真相源、永不漂移。</li>
|
||||
<li><strong>純容器不標</strong>(body/ul/table…——直接文本僅空白):否則 body 恆被判 paragraph、justify 鉤子經繼承污染全頁。標記集合恰為段落級 pass 實際作用之塊集(collectRuns 對純容器收不到 run);avoid 子樹/pill 內部文本不計,未被處理之塊一致不標。</li>
|
||||
<li><strong>輸入/輸出分離</strong>:作者輸入 <code>data-jz-level</code> 只讀不寫;輸出屬性本庫絕不讀取、亦不在 C2 觀察白名單(外部改動不觸發重處理);增量路徑 revert 即清、render 即重標,分類屬性變化自動刷新。是否對齊仍由消費端 CSS 決定(窄欄邊注可 opt-out),聚珍只供分類、不介入樣式。</li>
|
||||
</ul>
|
||||
<h3>說明八:增量「塊粒度」契約(純文檔)</h3>
|
||||
<ul>
|
||||
<li>README/ARCHITECTURE §3.1 明載:增量更新須以<strong>塊</strong>為粒度——換塊內容、增刪塊、改分類屬性皆與全量重繪一致;<strong>不支持</strong>對聚珍已切分文本節點之外科式 <code>characterData</code> 直改(charify 以 fragment 替換原節點,render 前之舊引用已脫離文檔)——後處理排版器之固有限制、非缺陷,以塊為單位替換內容即可。</li>
|
||||
</ul>
|
||||
|
||||
<h2>效能第二/三層:掃描/佈局提速 + 增量恢復(Tier3) <span class="badge accent">2026-07-12</span></h2>
|
||||
<p>承第一層(S2+S3)。本批含掃描/佈局提速與**增量恢復**(動態頁面局部變化免全樹重掃),全程獨立複驗+4 份真人撰寫真實文檔驗收。單元測試 130→140 全綠。</p>
|
||||
<h3>掃描 / 佈局提速</h3>
|
||||
@@ -280,6 +294,19 @@
|
||||
<script type="text/markdown" id="md-source">
|
||||
# 變更紀錄(Changelog)— 聚珍(Juzhen)/cjk-autospace
|
||||
|
||||
## 塊級分類 CSS 鉤子 data-jz-block-level + 增量塊粒度契約(2026-07-16)
|
||||
|
||||
下游 HTML 模板消費端回饋兩項(建議七/說明八):resolved 分類之 CSS 可查鉤子(新功能、向下兼容),與增量 API 使用契約之文檔化。測試 140→145 全綠。
|
||||
|
||||
### 建議七:resolved 分類寫回 DOM(levelMark pass)
|
||||
- 動機:消費端段落級 CSS(text-align:justify)應與段落級 pass(禁則/垂懸)作用於同一集合;level 原僅存內部快取,消費端另立選擇器白名單必然漂移(.callout 綁了避頭尾卻仍散尾)。
|
||||
- 機制:新增 standalone pass levelMark(order 10,恆開)——render 對每個「直接承載可處理文本」之塊寫 data-jz-block-level="paragraph|text",revert 全數移除(I6)。CSS:[data-jz-block-level="paragraph"]{ text-align: justify } 即與聚珍共用單一真相源。
|
||||
- 純容器不標(body/ul/table…直接文本僅空白):否則 body 恆判 paragraph、justify 經繼承污染全頁;標記集合恰為段落級 pass 實際作用之塊集;avoid 子樹/pill 內部文本不計。
|
||||
- 輸入/輸出分離:作者輸入 data-jz-level 只讀不寫;輸出屬性本庫絕不讀取、不在 C2 觀察白名單;增量路徑 revert 即清、render 即重標,自動刷新。
|
||||
|
||||
### 說明八:增量「塊粒度」契約(純文檔)
|
||||
- README/ARCHITECTURE §3.1 明載:增量須以塊為粒度(換塊內容、增刪塊、改分類屬性皆與全量一致);不支持對已切分文本節點之外科式 characterData 直改(charify 以 fragment 替換原節點,舊引用已脫離文檔)——後處理排版器固有限制、非缺陷。
|
||||
|
||||
## 效能第二/三層:掃描/佈局提速 + 增量恢復(Tier3)(2026-07-12)
|
||||
|
||||
承第一層(S2+S3)。含掃描/佈局提速與增量恢復(動態頁面局部變化免全樹重掃),全程獨立複驗+4 份真人撰寫真實文檔驗收。測試 130→140 全綠。
|
||||
|
||||
Reference in New Issue
Block a user