From 04a1d7cbcf12845fda2a4a8a16bf7d4775eed047 Mon Sep 17 00:00:00 2001 From: Frank Lin Date: Thu, 1 Jan 2026 07:41:41 -0800 Subject: [PATCH 1/4] Refine classic demo UI and conversion routing --- wasm-demo/build.js | 2 +- wasm-demo/classic.html | 612 ++++++++++++++++++++++++++++++++++++ wasm-demo/package-lock.json | 5 +- wasm-demo/package.json | 2 +- 4 files changed, 617 insertions(+), 4 deletions(-) create mode 100644 wasm-demo/classic.html diff --git a/wasm-demo/build.js b/wasm-demo/build.js index 2b7558d59..167087d05 100644 --- a/wasm-demo/build.js +++ b/wasm-demo/build.js @@ -36,7 +36,7 @@ if (fs.existsSync(ocjsSrc)) { } // copy demo assets -const filesToCopy = ["index.html", "public-api.html", "benchmark.html", "testcases.json"]; +const filesToCopy = ["index.html", "public-api.html", "classic.html", "benchmark.html", "testcases.json"]; for (const file of filesToCopy) { const src = path.join(demoRoot, file); if (fs.existsSync(src)) { diff --git a/wasm-demo/classic.html b/wasm-demo/classic.html new file mode 100644 index 000000000..9ca90be8c --- /dev/null +++ b/wasm-demo/classic.html @@ -0,0 +1,612 @@ + + + + + + OpenCC WASM 經典版 + + + +
+ +

OpenCC 轉換工具演示 更新日期:2025-12-31

+
+ +
+
+

選擇轉換模式

+
+
+
+
+ 原文 + + + +
+
+ 目標 + + + +
+
+ 異體字轉換 + + + +
+
+ 地域用詞轉換 + + + +
+
+
+ +
+
+

輸入原文

+ +
+ + +
+
+ +
+

轉換結果

+
+
+ +
+
+
+ + +
+
+
+
+ 本頁面中的轉換全部在瀏覽器內完成,不會上傳文字,保障您的隱私。 | + OpenCC GitHub | + Telegram 討論組 +
Copyright 2026 OpenCC Authors
+
+
+ + diff --git a/wasm-demo/package-lock.json b/wasm-demo/package-lock.json index ac6c17ed3..ccf8a47d7 100644 --- a/wasm-demo/package-lock.json +++ b/wasm-demo/package-lock.json @@ -9,12 +9,13 @@ "version": "0.0.0", "dependencies": { "opencc-js": "^1.0.5", - "opencc-wasm": "file:../wasm-lib" + "opencc-wasm": "^0.1.0" } }, "../wasm-lib": { "name": "opencc-wasm", - "version": "0.1.0" + "version": "0.1.0", + "license": "Apache-2.0" }, "node_modules/opencc-js": { "version": "1.0.5", diff --git a/wasm-demo/package.json b/wasm-demo/package.json index bc044a491..0294bd40b 100644 --- a/wasm-demo/package.json +++ b/wasm-demo/package.json @@ -4,7 +4,7 @@ "private": true, "type": "module", "dependencies": { - "opencc-wasm": "file:../wasm-lib", + "opencc-wasm": "^0.1.0", "opencc-js": "^1.0.5" }, "scripts": { From 27d7b2881d313a73112c96deb8857781aaeb1eb6 Mon Sep 17 00:00:00 2001 From: Frank Lin Date: Thu, 1 Jan 2026 09:04:02 -0800 Subject: [PATCH 2/4] rename index.html to wasm.html --- wasm-demo/{index.html => wasm.html} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename wasm-demo/{index.html => wasm.html} (100%) diff --git a/wasm-demo/index.html b/wasm-demo/wasm.html similarity index 100% rename from wasm-demo/index.html rename to wasm-demo/wasm.html From 5524966ef08032d101574845a1a3e6e787f29837 Mon Sep 17 00:00:00 2001 From: Frank Lin Date: Thu, 1 Jan 2026 09:04:25 -0800 Subject: [PATCH 3/4] rename classic.html to index.html --- wasm-demo/{classic.html => index.html} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename wasm-demo/{classic.html => index.html} (100%) diff --git a/wasm-demo/classic.html b/wasm-demo/index.html similarity index 100% rename from wasm-demo/classic.html rename to wasm-demo/index.html From 56550cd5d6e2b1cd2e90cba6cbae844a7c925084 Mon Sep 17 00:00:00 2001 From: Frank Lin Date: Thu, 1 Jan 2026 09:08:16 -0800 Subject: [PATCH 4/4] Update README and timestamp. --- wasm-demo/README.md | 43 +++++++++++++++++++++---------------------- wasm-demo/index.html | 2 +- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/wasm-demo/README.md b/wasm-demo/README.md index a0777b45f..310f1d115 100644 --- a/wasm-demo/README.md +++ b/wasm-demo/README.md @@ -1,30 +1,29 @@ -# wasm-demo:OpenCC WASM 用法简介 +# wasm-demo:OpenCC WASM 示範站 -本目录提供一个基于发布包 `opencc-wasm` 的浏览器演示:加载配置与词典、执行转换、运行测试用例。 +本目錄提供一個基於發佈套件 `opencc-wasm` 的瀏覽器示範:載入設定與字典、執行轉換、跑測試。 -## 准备 -- 先在仓库根执行 `npm install ./wasm-lib`(或从 npm 安装正式包),确保本目录下的 `node_modules/opencc-wasm` 可用。 +## 準備 +- 先在 `wasm-demo` 根目錄執行 `npm install`,確認本目錄的 `node_modules/opencc-wasm` 可用。 -## 文件概览 -- `index.html`:演示页面,引用 `./vendor/opencc-wasm/opencc-wasm.js` 初始化 WASM(需先运行 `npm run prepare:assets` 复制产物): - - 配置按钮:从 `./vendor/opencc-wasm/data/config/*.json` 解析并加载所需 `.ocd2` 到虚拟 FS(配置写 `/data/config/`、词典写 `/data/dict/`),自动填充配置名、焦点跳转。 - - 文本转换:选择配置后调用句柄式 `opencc_convert`,支持一键复制输出。 - - 测试用例:读取本目录的 `testcases.json`,批量加载配置/词典并校验输出,结果汇总在日志框。 - - 统一日志/结果输出区。 -- `testcases.json`:从 `../test/testcases` 生成的用例(如需重新生成,可使用 `wasm-lib/scripts/gen_testcases_json.py`,输出到本目录)。 -- `vendor/opencc-wasm/`:通过 `npm run prepare:assets` 从已安装的 `opencc-wasm` 包复制的构建产物。 -- `benchmark.html`:简单性能对比页(WASM 与 opencc-js,本地有 opencc-js 时可用于对比,但性能不是 WASM 目标;WASM 侧优势在于完整 OpenCC 行为与官方 config/ocd2 一致性)。 +## 檔案概覽 +- `index.html`:新版經典介面(類似 byvoid.opencc.com),按鈕式選原文/目標/異體字/地域用詞,動態載入設定與 `.ocd2`(寫入 `/data/config`、`/data/dict`),內建測試入口、複製、快捷鍵等。 +- `wasm.html`:早期的 WASM API 示範頁,直接呼叫 `opencc_create/opencc_convert`,可手動載入設定並跑測試。 +- `public-api.html`:使用 `opencc-wasm` 提供的 opencc-js 相容 API 的示範頁,方便對照官方 JS API。 +- `benchmark.html`:效能對比頁(WASM vs opencc-js,需本機有 opencc-js 才會載入;WASM 重點在行為一致性而非效能)。 +- `testcases.json`:自 `../test/testcases` 產出的用例(如需重生,可用 `wasm-lib/scripts/gen_testcases_json.py` 輸出到本目錄)。 +- `vendor/opencc-wasm/`:透過 `npm run prepare:assets` 從已安裝的 `opencc-wasm` 套件複製的構建產物。 -## 运行 +## 執行 ```bash cd wasm-demo -npm install # 安装依赖(包含 opencc-wasm 本地包) -npm run prepare:assets # 复制 dist 到 vendor,便于静态访问 -python3 -m http.server 8000 -# 浏览器访问 http://localhost:8000/wasm-demo/ +npm install # 安裝相依(包含 opencc-wasm 本地套件) +npm run build # 複製 dist 到 vendor,方便靜態存取 +python3 -m http.server 8000 # 瀏覽器開 http://localhost:8000/wasm-demo/ ``` -点击配置按钮加载词典,然后执行转换或运行测试用例。 +點擊設定按鈕載入字典,再執行轉換或測試。 -## 配置与词典路径 -- 配置 JSON 与字典 `.ocd2` 直接使用包内的 `node_modules/opencc-wasm/dist/data/config/` 与 `node_modules/opencc-wasm/dist/data/dict/`。 -- 页面加载时把配置写入 `/data/config/`,词典写入 `/data/dict/`,并在配置中重写引用路径指向 `/data/dict/...`。 +輸出的 `dist/` 內容可直接用於靜態部署。 + +## 設定與字典路徑 +- 設定 JSON 與字典 `.ocd2` 直接使用套件內的 `node_modules/opencc-wasm/dist/data/config/` 與 `node_modules/opencc-wasm/dist/data/dict/`。 +- 頁面載入時把設定寫入 `/data/config/`,字典寫入 `/data/dict/`,並在設定中改寫引用路徑指向 `/data/dict/...`。 diff --git a/wasm-demo/index.html b/wasm-demo/index.html index 9ca90be8c..03a80fb79 100644 --- a/wasm-demo/index.html +++ b/wasm-demo/index.html @@ -230,7 +230,7 @@ d="M87 43.5c-1.4.8-3.4 1.4-4.5 1.4s-9.3 1.5-18.3 3.3c-13.9 2.7-16.7 3-19.4 2-5-1.9-5.7.1-1.4 4.4 4.1 4.1 3.7 4.1 16.6-.4 9.1-3.3 26-6.5 27.3-5.3.7.7-7.9 11.8-12.1 15.4-1.9 1.8-2.2 1.8-4.4.3-4.9-3.5-5-1.4-.3 5.5 5.2 7.6 4.9 8.6-3.2 9.4-3.8.4-16.1 2-27.6 3.6-15.1 2.2-21.2 2.7-22.6 1.9-5.2-2.7-6.8.1-2.4 4.2 5.1 4.6 6.1 4.8 13.2 2.1C34 89 55.2 85 68.7 83.6l6.2-.7.7 3.7c1 5.5-.3 25.2-2.1 31.2-.9 2.9-2.3 5.6-3.2 5.9-1.4.6-8.4-.5-15-2.3-4.5-1.2-2.3 1.6 3.3 4.3 3.8 1.8 6.3 3.8 8 6.5 1.3 2.1 3.1 3.8 4 3.8 2.9 0 6.3-4.8 8.6-12.1 2-6.5 2.3-9.4 2.3-24.2V83l3.4-.6c3.6-.7 28.3.1 40.4 1.2 6.4.7 6.7.6 6.7-1.5 0-1.7-1.3-2.8-5.5-4.7-5-2.3-6-2.4-10.7-1.5-2.9.6-12.1 1.3-20.4 1.7l-15.1.7-2.3-4.7-2.2-4.7 6.8-6.4c3.8-3.5 9.3-7.7 12.1-9.2 2.9-1.5 5.3-3.4 5.3-4 0-1.4-7.7-7.3-9.4-7.3-.6.1-2.2.7-3.6 1.5z" /> -

OpenCC 轉換工具演示 更新日期:2025-12-31

+

OpenCC 轉換工具演示 更新日期:2026-01-01