feat: Pass C —— 長英文段 lang 包裝(預設啟用)
把 [A-Za-z]{N,} 之長英文段包進 <span lang="en">,配合消費端 CSS
[lang|="en"] { hyphens: auto; ... } 用瀏覽器原生 en 字典斷詞 + 渲
染連字符。連字符純由 CSS 渲染,DOM 內不存在 → 選取 / 複製返回原文
無污染。冪等:parent 為 <span lang> 直接跳過。
skip 鏈共用 Pass A / B 之 isSkipped(CODE / KBD / PRE / SAMP / TT
/ VAR / SCRIPT / STYLE / TEXTAREA / INPUT / SVG / contentEditable
/ data-md-key)。
預設啟用以解 CJK 兩端對齊正文中行末長英文詞之斷行問題;消費端可傳
longWordWrap: false 顯式關閉,或 { minLength, lang } 自訂粒度與標
語。
README + .d.ts 同步說明,含字型陷阱(CJK serif 把 U+2010 設為全形)
與消費端 CSS 範本(含 hyphenate-character: "-")。
This commit is contained in:
Vendored
+23
@@ -33,6 +33,29 @@ export interface CjkAutospaceOptions {
|
||||
|
||||
/** 自訂 skip 判定(在內建判定前先檢查)。回傳 true 表示應跳過。 */
|
||||
isSkipped?: (node: Node) => boolean;
|
||||
|
||||
/**
|
||||
* Pass C(**預設啟用**):把 `[A-Za-z]{minLength,}` 之長英文段包進
|
||||
* `<span lang="…">`,讓瀏覽器原生 `hyphens: auto` 可斷詞並渲染連字
|
||||
* 符(連字符純由 CSS 渲染,DOM 內不存在 → 複製不污染原文)。需消費
|
||||
* 端 CSS 配:
|
||||
*
|
||||
* ```css
|
||||
* [lang|="en"] {
|
||||
* hyphens: auto;
|
||||
* -webkit-hyphens: auto;
|
||||
* hyphenate-limit-chars: 6 3 3; // 詞長 / 斷點前 / 斷點後最少字符
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* 傳 `false` 顯式關閉;`true` 或省略等同 `{ minLength: 6, lang: "en" }`。
|
||||
*/
|
||||
longWordWrap?: boolean | {
|
||||
/** 觸發包裝之最短字母串長度。預設 6。 */
|
||||
minLength?: number;
|
||||
/** 包裝 span 之 `lang` 屬性值。預設 `"en"`。 */
|
||||
lang?: string;
|
||||
};
|
||||
}
|
||||
|
||||
export interface CjkAutospaceInstance {
|
||||
|
||||
Reference in New Issue
Block a user