From bbda4cb3d57111e989db280c433978ff391fc01e Mon Sep 17 00:00:00 2001 From: commilitia Date: Tue, 9 Jun 2026 23:34:49 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=A8=99=E9=BB=9E=E6=87=B8=E6=8E=9B?= =?UTF-8?q?=E6=94=B9=E8=A8=98=E7=82=BA=E3=80=8C=E5=AF=A6=E4=BD=9C=E5=BE=8C?= =?UTF-8?q?=E5=81=9C=E7=94=A8=E3=80=8D=EF=BC=88=E5=90=8C=E6=AD=A5=20main?= =?UTF-8?q?=20=E5=81=9C=E7=94=A8=E6=B1=BA=E5=AE=9A=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit changelog 該條改為「功能分級 + 垂懸字(標點懸掛停用)」:功能分級/垂懸字落地、行端 模式重構+行歸屬 bug 修正;標點懸掛全面停用(四項不可行原因+三重防逃逸+未來原生 hanging-punctuation 路徑)。index 功能表懸掛列改刪除線+停用說明、選項示例與 md twin 同步。 重建 index.html/changelog.html。 --- docs/changelog.html | 26 ++++++++++++-------------- docs/changelog.src.html | 24 +++++++++++------------- docs/index.html | 12 ++++++------ docs/index.src.html | 10 +++++----- 4 files changed, 34 insertions(+), 38 deletions(-) diff --git a/docs/changelog.html b/docs/changelog.html index c92b319..bcafbf1 100644 --- a/docs/changelog.html +++ b/docs/changelog.html @@ -1,4 +1,4 @@ - + @@ -2531,27 +2531,25 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }

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

-

功能分級 + 垂懸字 + 標點懸掛 2026-06-09

-

ARCHITECTURE §6.5 整體計劃落地(功能分級前置 → 垂懸字 → 行端模式重構 → 標點懸掛),共 87 單元測試全綠,懸掛經 headless Chrome 校準。

+

功能分級 + 垂懸字(標點懸掛停用) 2026-06-09

+

ARCHITECTURE §6.5:功能分級、垂懸字(方案 C)落地工作良好;原計劃之標點懸掛經實測確認不可行、全面停用。共 90 單元測試全綠(含懸掛防逃逸覆蓋)。

新增

-

修復

+

標點懸掛:實作後全面停用

+

原計劃之標點懸掛(行端標點凸出版心)經 headless + 真實瀏覽器實測確認純負 margin 機制不可行,已全面停用(hanging 選項仍被接受但無任何效果)。

-

已知限制

-

工具

標點挤压一致性 2026-06-04

diff --git a/docs/changelog.src.html b/docs/changelog.src.html index 1036aaf..397861b 100644 --- a/docs/changelog.src.html +++ b/docs/changelog.src.html @@ -25,27 +25,25 @@

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

-

功能分級 + 垂懸字 + 標點懸掛 2026-06-09

-

ARCHITECTURE §6.5 整體計劃落地(功能分級前置 → 垂懸字 → 行端模式重構 → 標點懸掛),共 87 單元測試全綠,懸掛經 headless Chrome 校準。

+

功能分級 + 垂懸字(標點懸掛停用) 2026-06-09

+

ARCHITECTURE §6.5:功能分級、垂懸字(方案 C)落地工作良好;原計劃之標點懸掛經實測確認不可行、全面停用。共 90 單元測試全綠(含懸掛防逃逸覆蓋)。

新增

-

修復

+

標點懸掛:實作後全面停用

+

原計劃之標點懸掛(行端標點凸出版心)經 headless + 真實瀏覽器實測確認純負 margin 機制不可行,已全面停用(hanging 選項仍被接受但無任何效果)。

-

已知限制

-

工具

標點挤压一致性 2026-06-04

diff --git a/docs/index.html b/docs/index.html index 0c0dd40..010cb3c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ - + @@ -2564,8 +2564,8 @@ createJuzhen({ lang: { default: "zh-Hant" } }).render(document.querySelector("ma 標點擠壓 jiya標點 charify 為 jz-charbd-* class。三機制:baseline 政策(全角式不擠/開明式擠句內點號+括號引號/半角式全擠)+行內連續擠壓+行端擠壓。半形預設以字型 OpenType halt 渲染;缺 halt 字型可切 margin 後備模式(見下)。 禁則 jinze行首行末避頭尾:閉類/點號綁前一字(不置行首)、開類綁後一字(不置行末);只隔離邊界詞元,長引文中段仍可斷。亦為 justify 綁定載體。 垂懸字避免 orphan段末行 CJK 實義字 ≥ N(預設 2;標點不計)。方案 C(斷行層無測量):段末末 N 實義字+尾隨標點包入 jz-orphanwhite-space:nowrap),整體不可斷 → 末行恒含之 ⇒ 末行 ≥ N。預設開;段落級。 -標點懸掛 hanging行尾點號/閉類右凸、行首開類左凸出版心,正文格線齊邊(自管負 margin,按類凸出量:點號 1em/括號 0.5em,CSS 變數可調)。預設關;繁體預設不掛(逐 lang 閘)。⚠ 需 justifyAtoms:false(與 inline-block 對齊原子互斥)。段落級。 -功能分級 level文本級(間隙、擠壓——任意文本適用)vs 段落級(禁則、垂懸字、懸掛、長詞——需行/段布局)。塊級預設全功能;data-jz-level="text" 子樹或 level:{text:"選擇器"}(標題/按鈕)僅跑文本級。 +標點懸掛 hanging已評估停用:純負 margin 機制不可行(墨色不出版心/滿凸拉升後字重疊/resize 錯亂),原生 hanging-punctuation 為正解但 Chrome 不支援。選項仍被接受但無效果、程式碼休眠。詳見 ARCHITECTURE §6.5.6。 +功能分級 level文本級(間隙、擠壓——任意文本適用)vs 段落級(禁則、垂懸字、長詞——需行/段布局)。塊級預設全功能;data-jz-level="text" 子樹或 level:{text:"選擇器"}(標題/按鈕)僅跑文本級。 justify 單份間距每個 jz-charinline-block 原子,句末標點只貢獻一份對齊伸縮量。 @@ -2584,9 +2584,9 @@ createJuzhen({ lang: { default: "zh-Hant" } }).render(document.querySelector("ma jiya: true, // 或物件:{ halfWidth: "halt"|"margin", bias } jinze: true, orphan: true, // 垂懸字避免(預設開);或 { chars: 2 };false 關 - hanging: false, // 標點懸掛(預設關);需 justifyAtoms:false + // hanging:已停用、無效果(純負 margin 機制不可行,詳見 §6.5.6) level: { text: "h1,h2,h3,button,.ui" }, // 此選擇器子樹僅跑文本級功能 - justifyAtoms: true, // 分頁器或標點懸掛下設 false 改 inline(見下) + justifyAtoms: true, // 分頁器下設 false 改 inline(見下) blocks: [ { selector: ".code-comment", features: [ "spacing" ] } ], });

擠壓政策優先序:逐 lang policy > 全域 style > 內建預設(繁→全角、簡→開明)。

@@ -2733,7 +2733,7 @@ JS 只注入 `jz-*` 結構,所有視覺尺寸在 juzhen.css,缺一不可。 - jiya 標點擠壓(全角/開明/半角;半形 halt 預設、margin 後備)【文本級】 - jinze 禁則(避頭尾、justify 綁定)【段落級】 - orphan 垂懸字避免(方案 C,末行 CJK 實義字 ≥ N;預設開 chars=2)【段落級】 -- hanging 標點懸掛(行端點號/括號凸出版心;預設關;需 justifyAtoms:false;逐 lang 閘繁體不掛)【段落級】 +- hanging 標點懸掛:已評估停用(純負 margin 機制不可行,原生 hanging-punctuation 待 Chrome 支援;選項無效果、程式碼休眠;詳見 §6.5.6) - level 功能分級(文本級 vs 段落級;data-jz-level="text"/level:{text:選擇器} 標記標題等僅跑文本級) - justify 句末標點單份間距(jz-char inline-block 原子) diff --git a/docs/index.src.html b/docs/index.src.html index 805018a..30523af 100644 --- a/docs/index.src.html +++ b/docs/index.src.html @@ -58,8 +58,8 @@ createJuzhen({ lang: { default: "zh-Hant" } }).render(document.querySelector("ma 標點擠壓 jiya標點 charify 為 jz-charbd-* class。三機制:baseline 政策(全角式不擠/開明式擠句內點號+括號引號/半角式全擠)+行內連續擠壓+行端擠壓。半形預設以字型 OpenType halt 渲染;缺 halt 字型可切 margin 後備模式(見下)。 禁則 jinze行首行末避頭尾:閉類/點號綁前一字(不置行首)、開類綁後一字(不置行末);只隔離邊界詞元,長引文中段仍可斷。亦為 justify 綁定載體。 垂懸字避免 orphan段末行 CJK 實義字 ≥ N(預設 2;標點不計)。方案 C(斷行層無測量):段末末 N 實義字+尾隨標點包入 jz-orphanwhite-space:nowrap),整體不可斷 → 末行恒含之 ⇒ 末行 ≥ N。預設開;段落級。 -標點懸掛 hanging行尾點號/閉類右凸、行首開類左凸出版心,正文格線齊邊(自管負 margin,按類凸出量:點號 1em/括號 0.5em,CSS 變數可調)。預設關;繁體預設不掛(逐 lang 閘)。⚠ 需 justifyAtoms:false(與 inline-block 對齊原子互斥)。段落級。 -功能分級 level文本級(間隙、擠壓——任意文本適用)vs 段落級(禁則、垂懸字、懸掛、長詞——需行/段布局)。塊級預設全功能;data-jz-level="text" 子樹或 level:{text:"選擇器"}(標題/按鈕)僅跑文本級。 +標點懸掛 hanging已評估停用:純負 margin 機制不可行(墨色不出版心/滿凸拉升後字重疊/resize 錯亂),原生 hanging-punctuation 為正解但 Chrome 不支援。選項仍被接受但無效果、程式碼休眠。詳見 ARCHITECTURE §6.5.6。 +功能分級 level文本級(間隙、擠壓——任意文本適用)vs 段落級(禁則、垂懸字、長詞——需行/段布局)。塊級預設全功能;data-jz-level="text" 子樹或 level:{text:"選擇器"}(標題/按鈕)僅跑文本級。 justify 單份間距每個 jz-charinline-block 原子,句末標點只貢獻一份對齊伸縮量。 @@ -78,9 +78,9 @@ createJuzhen({ lang: { default: "zh-Hant" } }).render(document.querySelector("ma jiya: true, // 或物件:{ halfWidth: "halt"|"margin", bias } jinze: true, orphan: true, // 垂懸字避免(預設開);或 { chars: 2 };false 關 - hanging: false, // 標點懸掛(預設關);需 justifyAtoms:false + // hanging:已停用、無效果(純負 margin 機制不可行,詳見 §6.5.6) level: { text: "h1,h2,h3,button,.ui" }, // 此選擇器子樹僅跑文本級功能 - justifyAtoms: true, // 分頁器或標點懸掛下設 false 改 inline(見下) + justifyAtoms: true, // 分頁器下設 false 改 inline(見下) blocks: [ { selector: ".code-comment", features: [ "spacing" ] } ], });

擠壓政策優先序:逐 lang policy > 全域 style > 內建預設(繁→全角、簡→開明)。

@@ -211,7 +211,7 @@ JS 只注入 `jz-*` 結構,所有視覺尺寸在 juzhen.css,缺一不可。 - jiya 標點擠壓(全角/開明/半角;半形 halt 預設、margin 後備)【文本級】 - jinze 禁則(避頭尾、justify 綁定)【段落級】 - orphan 垂懸字避免(方案 C,末行 CJK 實義字 ≥ N;預設開 chars=2)【段落級】 -- hanging 標點懸掛(行端點號/括號凸出版心;預設關;需 justifyAtoms:false;逐 lang 閘繁體不掛)【段落級】 +- hanging 標點懸掛:已評估停用(純負 margin 機制不可行,原生 hanging-punctuation 待 Chrome 支援;選項無效果、程式碼休眠;詳見 §6.5.6) - level 功能分級(文本級 vs 段落級;data-jz-level="text"/level:{text:選擇器} 標記標題等僅跑文本級) - justify 句末標點單份間距(jz-char inline-block 原子)