CHANGELOG:補 ESM export
對應 main 之 a5faec5。檔尾加 `export { createCjkAutospace }` 讓
Vite / Rollup / TS 之 ESM 消費端可 named import;IIFE 串接端
sed 剝最後一行即可。
This commit is contained in:
+28
-2
@@ -1,4 +1,4 @@
|
||||
<!-- built with theme=dracula, mode=report, at=2026-05-26T08:53:50Z -->
|
||||
<!-- built with theme=dracula, mode=report, at=2026-05-26T09:26:30Z -->
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-Hant">
|
||||
<head>
|
||||
@@ -2250,6 +2250,12 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }
|
||||
|
||||
<main>
|
||||
|
||||
<h2>2026-05-26 — 補 ESM <code>export</code>(四種消費形式並存)</h2>
|
||||
|
||||
<p>下游 Vite / Rollup / TypeScript 之靜態 ESM 解析需要真正之 <code>export</code> 關鍵字;原 UMD-ish(<code>module.exports</code> + <code>globalThis</code>)對 ESM 消費端仍須走「副作用導入 + 從 global 取 factory」之 workaround。檔尾在既有 CJS / globalThis 兩塊後加 <code>export { createCjkAutospace }</code>,順序刻意如此 —— 讓 IIFE 串接端(Claude 模板 <code>build.sh</code> / Nvim peek build hook)只需以 <code>sed '/^export {/d'</code> 剝最後一行。</p>
|
||||
|
||||
<p>四種消費形式並存:ESM <code>import</code> / CommonJS <code>require</code> / browser <code>globalThis</code> / IIFE 串接(後者需剝 <code>export</code> 行)。</p>
|
||||
|
||||
<h2>2026-05-26 — Pass C:長英文段 lang 包裝(預設啟用)</h2>
|
||||
|
||||
<p>解決 CJK 兩端對齊正文中行末長英文詞之斷行問題。原模板於 runtime 端用 <code><wbr></code> 每 6 字元亂插斷詞機會,產生兩個觀感問題:(1)位置與音節邊界無關,斷在怪位;(2)<code><wbr></code> 為 zero-width,斷處不顯連字符,讀者無法辨認「上行末是被斷開的詞」。</p>
|
||||
@@ -2330,6 +2336,11 @@ main > *:nth-child(n+6) { animation-delay: 0.46s; }
|
||||
<script type="text/markdown" id="md-source">
|
||||
# cjk-autospace — Changelog
|
||||
|
||||
## 2026-05-26 — 補 ESM `export`(四種消費形式並存)
|
||||
|
||||
- 檔尾加 `export { createCjkAutospace }`,順序在 CJS / globalThis 兩塊之後 → IIFE 串接端只需 `sed '/^export {/d'` 剝最後一行
|
||||
- 四種消費形式並存:ESM `import` / CommonJS `require` / browser `globalThis` / IIFE 串接
|
||||
|
||||
## 2026-05-26 — Pass C:長英文段 lang 包裝(預設啟用)
|
||||
|
||||
- 把 [A-Za-z]{N,} 之長英文段包進 `<span lang="en">`,配消費端 CSS `[lang|="en"] { hyphens: auto; ... }` 用瀏覽器原生 en 字典斷詞 + 渲染連字符
|
||||
@@ -2907,7 +2918,22 @@ function createCjkAutospace(options)
|
||||
return { apply: apply };
|
||||
}
|
||||
|
||||
/* ----- UMD-ish export ----- */
|
||||
/* ----- 多形 export -----
|
||||
*
|
||||
* 四種消費場景並存:
|
||||
* ESM(Vite / Rollup / TypeScript):使用 `export { createCjkAutospace }`,
|
||||
* 可 `import { createCjkAutospace } from "./cjk-autospace.js"`;
|
||||
* CommonJS(Node `require`):使用 `module.exports`;
|
||||
* Browser global / `<script>` 標籤:使用 `globalThis` 賦值;
|
||||
* IIFE 串接(build.sh / Nvim peek hook 把本檔內容 cat 進單個閉包):
|
||||
* `export` 語句屬 ESM 之 module-level 語法,串入函式體內會語法錯誤,
|
||||
* 故串接端須剝掉 `export {` 起始之那行(單行 `sed '/^export {/d'`
|
||||
* 即可)。其餘 module.exports / globalThis 兩塊在閉包內安全(typeof
|
||||
* 檢查不會 throw、globalThis 賦值無副作用)。
|
||||
*
|
||||
* 順序:先 CJS / globalThis(不影響語法解析),最後 ESM `export`,
|
||||
* 讓串接端只需剝最後一塊。
|
||||
*/
|
||||
if (typeof module !== "undefined" && module.exports)
|
||||
{
|
||||
module.exports = { createCjkAutospace: createCjkAutospace };
|
||||
|
||||
@@ -23,6 +23,12 @@
|
||||
|
||||
<main>
|
||||
|
||||
<h2>2026-05-26 — 補 ESM <code>export</code>(四種消費形式並存)</h2>
|
||||
|
||||
<p>下游 Vite / Rollup / TypeScript 之靜態 ESM 解析需要真正之 <code>export</code> 關鍵字;原 UMD-ish(<code>module.exports</code> + <code>globalThis</code>)對 ESM 消費端仍須走「副作用導入 + 從 global 取 factory」之 workaround。檔尾在既有 CJS / globalThis 兩塊後加 <code>export { createCjkAutospace }</code>,順序刻意如此 —— 讓 IIFE 串接端(Claude 模板 <code>build.sh</code> / Nvim peek build hook)只需以 <code>sed '/^export {/d'</code> 剝最後一行。</p>
|
||||
|
||||
<p>四種消費形式並存:ESM <code>import</code> / CommonJS <code>require</code> / browser <code>globalThis</code> / IIFE 串接(後者需剝 <code>export</code> 行)。</p>
|
||||
|
||||
<h2>2026-05-26 — Pass C:長英文段 lang 包裝(預設啟用)</h2>
|
||||
|
||||
<p>解決 CJK 兩端對齊正文中行末長英文詞之斷行問題。原模板於 runtime 端用 <code><wbr></code> 每 6 字元亂插斷詞機會,產生兩個觀感問題:(1)位置與音節邊界無關,斷在怪位;(2)<code><wbr></code> 為 zero-width,斷處不顯連字符,讀者無法辨認「上行末是被斷開的詞」。</p>
|
||||
@@ -87,6 +93,11 @@
|
||||
<script type="text/markdown" id="md-source">
|
||||
# cjk-autospace — Changelog
|
||||
|
||||
## 2026-05-26 — 補 ESM `export`(四種消費形式並存)
|
||||
|
||||
- 檔尾加 `export { createCjkAutospace }`,順序在 CJS / globalThis 兩塊之後 → IIFE 串接端只需 `sed '/^export {/d'` 剝最後一行
|
||||
- 四種消費形式並存:ESM `import` / CommonJS `require` / browser `globalThis` / IIFE 串接
|
||||
|
||||
## 2026-05-26 — Pass C:長英文段 lang 包裝(預設啟用)
|
||||
|
||||
- 把 [A-Za-z]{N,} 之長英文段包進 `<span lang="en">`,配消費端 CSS `[lang|="en"] { hyphens: auto; ... }` 用瀏覽器原生 en 字典斷詞 + 渲染連字符
|
||||
|
||||
Reference in New Issue
Block a user