docs: 標點挤压一致性(同步 main fdf071c)
changelog 增「標點挤压一致性(2026-06-04)」:全角句點 . 納入句末標點、連續標點雙側 獨立挤压+透明穿越;並把前批 charClass 條目之 . 例改為 ‥(. 今已內建)。使用文檔 標點半形節增句末標點與連續挤压規則(涉長度處標明全角式/開明式)。HTML 與 Markdown 孿生同步、manifest 重建。
This commit is contained in:
+15
-2
@@ -25,10 +25,17 @@
|
||||
<!-- BODY -->
|
||||
<p class="lede">聚珍(Juzhen)/cjk-autospace 變更紀錄。<a href="./index.html">← 回文檔</a></p>
|
||||
|
||||
<h2>標點挤压一致性 <span class="badge accent">2026-06-04</span></h2>
|
||||
<h3>新增/修復</h3>
|
||||
<ul>
|
||||
<li><strong>全角句點 <code>.</code> 納入句末標點</strong>:<code>BD_STOP</code> 由 <code>。!?</code> 擴為 <code>。.!?</code>——納入全角句點 <code>.</code>(U+FF0E,異於表意句號 <code>。</code> U+3002)。實測 Noto CJK SC/TC 之 <code>halt</code> 皆覆蓋、挤压收半形 advance 0.5em,與 <code>。</code> 一致;<code>inkBias</code> 同步補(簡 left/繁 center)。政策行為同 <code>。!?</code>:<strong>全角式與開明式句末保持全角 1em</strong>,banjiao(或鄰接被收)挤半。設計原則:<code>halt</code> 即字型之「挤压意願」,字型不提供某標點 <code>halt</code>(字形占滿、不宜挤)則信任字型、保持全角不強挤。</li>
|
||||
<li><strong>連續標點挤压規則:雙側獨立 + 透明穿越</strong>(修正既有不一致)。規則:相鄰兩標點,<strong>對每一標點</strong>獨立判斷——若其「有空白之側」緊鄰另一標點即收半。原為「二選一只收一側」,致 <code>,「</code> 全角式誤為 1.5em;修後 <code>,「</code> <strong>全角式與開明式皆 1em</strong>、<code>。」</code> <strong>全角式 1.5em/開明式 1em</strong>、<code>·—</code> 兩式皆 2em(不宜挤)。並改「同 parent 直接兄弟」掃描為<strong>從 root 之透明遍歷</strong>(穿越 <code>strong</code>/<code>em</code> 等行內邊界、block/avoid 斷相鄰),使跨 inline 邊界之連續標點亦正確配對(原漏致達 2em)。</li>
|
||||
</ul>
|
||||
|
||||
<h2>字符分類規則集 <span class="badge accent">2026-06-04</span></h2>
|
||||
<h3>新增</h3>
|
||||
<ul>
|
||||
<li><strong>可配置字符分類(<code>charClass</code>)</strong>:把散落各 pass 之硬編碼分類(中文 CJK/西文 ANS/全寬標點 BD_* 子類)統一抽象為<strong>規則集</strong>,內置默認即現狀值,消費端經 <code>options.charClass</code>(<code>{ cjk?, western?, biaodian?:{stop,pause,open,close,middle,liga} }</code>)<strong>追加擴充</strong>,覆寫 <code>spacing</code>/<code>jiya</code>/<code>jinze</code> 之分類判定。動機:英文全角句號 <code>.</code>(U+FF0E,異於中文句號 <code>。</code>)實證為未分類——不 charify/不挤/不補隙;以 <code>charClass:{biaodian:{stop:"."}}</code> 即比照 <code>。</code>。<strong>向下兼容</strong>:不傳則行為與內置完全一致、各實例隔離(覆寫不污染默認)。v1 為追加語義(不重分類/移除內置);結構性 ASCII 不開放。<code>spacing</code> 之間隙正則改由規則集 per-instance 編譯。測試 66 通過(含 9 條 charClass)。</li>
|
||||
<li><strong>可配置字符分類(<code>charClass</code>)</strong>:把散落各 pass 之硬編碼分類(中文 CJK/西文 ANS/全寬標點 BD_* 子類)統一抽象為<strong>規則集</strong>,內置默認即現狀值,消費端經 <code>options.charClass</code>(<code>{ cjk?, western?, biaodian?:{stop,pause,open,close,middle,liga} }</code>)<strong>追加擴充</strong>,覆寫 <code>spacing</code>/<code>jiya</code>/<code>jinze</code> 之分類判定。動機:未分類符號(如二點省略 <code>‥</code> U+2025)——不 charify/不挤;以 <code>charClass:{biaodian:{stop:"‥"}}</code> 即可歸入對應類。<strong>向下兼容</strong>:不傳則行為與內置完全一致、各實例隔離(覆寫不污染默認)。v1 為追加語義(不重分類/移除內置);結構性 ASCII 不開放。<code>spacing</code> 之間隙正則改由規則集 per-instance 編譯。測試 66 通過(含 9 條 charClass)。</li>
|
||||
</ul>
|
||||
|
||||
<h2>下游回饋修復批次 <span class="badge accent">2026-06-03</span></h2>
|
||||
@@ -118,10 +125,16 @@
|
||||
<script type="text/markdown" id="md-source">
|
||||
# 變更紀錄(Changelog)— 聚珍(Juzhen)/cjk-autospace
|
||||
|
||||
## 標點挤压一致性(2026-06-04)
|
||||
|
||||
### 新增/修復
|
||||
- 全角句點 . 納入句末標點:BD_STOP 由 。!? 擴為 。.!?(. U+FF0E 異於 。 U+3002)。Noto CJK 有 halt、挤压收 0.5em,與 。一致;inkBias 補(簡 left/繁 center)。政策同 。!?:全角式與開明式句末保持全角 1em,banjiao 挤半。原則:halt 即字型挤压意願,字型不給某標點 halt(不宜挤)則信任字型不強挤。
|
||||
- 連續標點挤压:雙側獨立 + 透明穿越。規則:相鄰兩標點,對每一標點獨立判斷,若其有空白之側緊鄰另一標點即收半。修後 ,「 全角式與開明式皆 1em、。」 全角式 1.5em/開明式 1em、·— 兩式皆 2em。並改同 parent 掃描為從 root 透明遍歷,跨 strong/em 邊界之連續標點亦正確挤(原漏致 2em)。
|
||||
|
||||
## 字符分類規則集(2026-06-04)
|
||||
|
||||
### 新增
|
||||
- 可配置字符分類 charClass:硬編碼分類(中文/西文/全寬標點子類)統一抽象為規則集,內置默認,消費端經 options.charClass(cjk/western/biaodian{stop,pause,open,close,middle,liga})追加擴充,覆寫 spacing/jiya/jinze 判定。例:英文全角句號 .(U+FF0E)預設未分類,以 biaodian.stop 歸全寬句末標點即比照 。。向下兼容(不傳則行為不變、實例隔離);v1 追加語義、不重分類內置;結構性 ASCII 不開放。spacing 間隙正則改由規則集 per-instance 編譯。測試 66 通過。
|
||||
- 可配置字符分類 charClass:硬編碼分類(中文/西文/全寬標點子類)統一抽象為規則集,內置默認,消費端經 options.charClass(cjk/western/biaodian{stop,pause,open,close,middle,liga})追加擴充,覆寫 spacing/jiya/jinze 判定。例:未分類符號(如 ‥ U+2025)可經 biaodian.stop 歸全寬句末標點。向下兼容(不傳則行為不變、實例隔離);v1 追加語義、不重分類內置;結構性 ASCII 不開放。spacing 間隙正則改由規則集 per-instance 編譯。測試 66 通過。
|
||||
|
||||
## 下游回饋修復批次(2026-06-03)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user