diff --git a/docs/changelog.html b/docs/changelog.html index 539aac0..99780d9 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -1,4 +1,4 @@ - + @@ -374,9 +374,21 @@ the stretch, so Latin words stay intact and gaps stay even. Code / mono content (`
`, ``, ``, ``) opts out
-   via the mono rule far above (text-align: revert added there).        */
+   via the mono rule far above (text-align: revert added there).
+
+   `.callout`, `.block-body` are listed by CLASS: they are block prose
+   containers that hold DIRECT text in a `
` (not `

`), so the tag + list can't reach them. The juzhen typesetter DOES treat them as + paragraphs (kinsoku / widow binding applies via `level`), so without + this they'd bind punctuation yet render ragged-right — a visible + justify/kinsoku mismatch. `.marginalia` is DELIBERATELY excluded: it + opts into `text-align: start` via the mono rule below (narrow side + notes justify badly). Any new prose container carrying direct text in + a bare `

` must wrap its text in `

`, be added here, or carry + `.justify`. */ :where(:lang(zh), :lang(ja), :lang(ko)) - :is(p, li, blockquote, td, dd, summary, figcaption, caption, .justify, .justify *) + :is(p, li, blockquote, td, dd, summary, figcaption, caption, + .callout, .block-body, .justify, .justify *) { text-align: justify; text-justify: auto; @@ -2545,6 +2557,20 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }

聚珍(Juzhen)/cjk-autospace 變更紀錄。← 回文檔

+

塊級分類 CSS 鉤子 data-jz-block-level + 增量塊粒度契約 2026-07-16

+

下游 HTML 模板消費端新一輪回饋兩項(建議七/說明八):resolved 分類之 CSS 可查鉤子(新功能、向下兼容),與增量 API 使用契約之文檔化。單元測試 140→145 全綠。

+

建議七:resolved 分類寫回 DOM(levelMark pass)

+
    +
  • 動機:消費端之段落級 CSS(首要 CJK 兩端對齊 text-align:justify)語義上應與段落級 pass(禁則/垂懸)作用於同一集合;level 判定原僅存內部快取、不寫回 DOM,消費端只能另立一份必然漂移之選擇器白名單(實例:.callout 綁了避頭尾卻仍散尾)。
  • +
  • 機制:新增 standalone pass levelMark(order 10,恆開)——render 時對每個「直接承載可處理文本」之塊級元素寫 data-jz-block-level="paragraph|text",revert 全數移除(I6 之 data-jz-* 清單涵蓋)。消費端 [data-jz-block-level="paragraph"]{ text-align: justify } 即與聚珍共用單一真相源、永不漂移。
  • +
  • 純容器不標(body/ul/table…——直接文本僅空白):否則 body 恆被判 paragraph、justify 鉤子經繼承污染全頁。標記集合恰為段落級 pass 實際作用之塊集(collectRuns 對純容器收不到 run);avoid 子樹/pill 內部文本不計,未被處理之塊一致不標。
  • +
  • 輸入/輸出分離:作者輸入 data-jz-level 只讀不寫;輸出屬性本庫絕不讀取、亦不在 C2 觀察白名單(外部改動不觸發重處理);增量路徑 revert 即清、render 即重標,分類屬性變化自動刷新。是否對齊仍由消費端 CSS 決定(窄欄邊注可 opt-out),聚珍只供分類、不介入樣式。
  • +
+

說明八:增量「塊粒度」契約(純文檔)

+
    +
  • README/ARCHITECTURE §3.1 明載:增量更新須以為粒度——換塊內容、增刪塊、改分類屬性皆與全量重繪一致;不支持對聚珍已切分文本節點之外科式 characterData 直改(charify 以 fragment 替換原節點,render 前之舊引用已脫離文檔)——後處理排版器之固有限制、非缺陷,以塊為單位替換內容即可。
  • +
+

效能第二/三層:掃描/佈局提速 + 增量恢復(Tier3) 2026-07-12

承第一層(S2+S3)。本批含掃描/佈局提速與**增量恢復**(動態頁面局部變化免全樹重掃),全程獨立複驗+4 份真人撰寫真實文檔驗收。單元測試 130→140 全綠。

掃描 / 佈局提速

@@ -2816,6 +2842,19 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }