test+docs: 逐元素標點樣式覆寫——回歸測試(6 例)+ README/ARCHITECTURE 說明
承 c00fb3e(data-jz-style/lang.stylePolicy 之設置格式已推送)。補 e2e 回歸與文檔。 測試(6 例,127 全綠):屬性 banjiao/選擇器 banjiao/屬性優先於選擇器/最近祖先勝/非法值 回退 lang/revert 還原(作者屬性保留)。 文檔:README 設置速查補 lang.stylePolicy + data-jz-style 兩行、新增「逐元素標點樣式」小節 (非段落用半角之選擇器與屬性兩範式);ARCHITECTURE §4.3 補 resolveStyle 優先序(逐元素覆寫 > policy > style > 內建)。
This commit is contained in:
+8
-4
@@ -326,11 +326,15 @@ avoid」用組合入口 `isAvoided`(=自身或祖先,階段二歸一,免
|
||||
- `effectiveLang(node)`:最近祖先 `lang`(小寫),無則回退 `options.lang.default`。
|
||||
- `classify(lang)`:歸為 `zh-Hans` / `zh-Hant`(含 `zh-TW`/`zh-HK`)/ `ja` / 其他;
|
||||
BCP-47 前綴邊界比對(`zh` 命中 `zh-Hant`,不命中 `zhx`)。
|
||||
- `style(lang)`:回傳該語言之標點寬度政策——`quanjiao`(全角式)|`kaiming`
|
||||
(開明式)|`banjiao`(半角式)。預設:`zh-Hant`/`zh-HK` → 全角式;`zh-Hans`
|
||||
→ 開明式;可由 `options.lang.policy` 覆寫(即你要的「依 lang 自由選擇」)。
|
||||
- `resolveStyle(node)`:回傳節點之有效標點寬度政策——`quanjiao`(全角式)|`kaiming`
|
||||
(開明式)|`banjiao`(半角式)。**優先序**:**逐元素覆寫**(`resolveStyleOverride`:自身及
|
||||
祖先鏈掃 `data-jz-style` 屬性/`stylePolicy` 選擇器命中,近祖先勝、同層屬性優先於選擇器)
|
||||
> 逐 lang `policy` > 全域 `style` > 內建逐語言預設(`zh-Hant`/`zh-HK` → 全角、`zh-Hans` →
|
||||
開明)。逐元素覆寫供「非段落/UI 元素用半角、段落用全角/開明」等需求(`data-jz-style` 屬性
|
||||
值非法則忽略、回退 lang)。此純為「按元素選樣式」之路由,`banjiao` 半形渲染沿用 `halt`/
|
||||
`margin`(§6.3),無新增壓縮邏輯。
|
||||
|
||||
CSS 端對應以 `:lang()` 選擇器落實同一政策(I2/I3)。
|
||||
CSS 端對應以 `:lang()` 選擇器落實 lang 層政策(I2/I3);逐元素覆寫屬 JS 端 baseline 判定。
|
||||
|
||||
### 4.4 `dom.ts`——`jz-*` 元素工廠與還原
|
||||
|
||||
|
||||
Reference in New Issue
Block a user