jiantw83
7c963b73cf
feat(lint): 機檢改讀共用簡體字表、加亂碼類別、掃描擴及程式碼檔
What
- 簡體字表改成優先讀 jsc-hooks 的 `hooks/simplified.txt`,讀不到才退回內建備援字表。
- 新增「亂碼」類別:U+FFFD 替代字元、雙重編碼的 `�`,以及 Latin-1 雙重編碼特徵。
- 掃描範圍加入程式碼檔(sh、js、ts、py、cs、java、go、rb、php、sql、yml、yaml、toml)。
- 檔頭註解補上分流理由,並把本檔自己加進跳過清單。
Why
- 字表寫死在本檔,和 hook 端的守門字表各自維護,兩邊遲早不一致;真實來源只該有一份。
- 內建備援不能拿掉:jsc-hooks 不一定裝在這台機器上,單獨 clone plugins/meta 或 CI 只取
一個 repo 都會發生。缺基礎設施就讓簡體字檢查靜靜失效,會把「沒命中」變成假通過。
- 新規則要求所有非程式碼輸出無亂碼、無簡體字,程式碼註解也算,所以檢查得看得到程式碼檔。
How
- `simplified_file()` 的搜尋路徑比照 `jsc-hooks/hooks/lib.sh` 的 `jsc_gitea_sh()`:先環境變數
`JSC_SIMPLIFIED_FILE`,再並排存取庫版面,最後已安裝的 plugin 快取版面取版本排序最後一份。
- 字表格式一行一個字,`#` 開頭與空行忽略,串成 grep -E 交替式。
- 分流:`.md` 與 `.json` 跑全部六項;程式碼檔只跑簡體字與亂碼。中國用語、半形標點、AI 套話、
並列斜線這四項在程式碼裡會被英文標點、路徑、URL、正規表示式大量誤報,留著只會讓人忽略輸出。
- 亂碼樣式一律用十六進位跳脫寫,本檔才不會存進真的亂碼字元自己打自己。
Who
- 影響跑 `tools/ste100-lint.sh` 的人與 `jsc-meta:skill-check`、`jsc-meta:ste100-sync` 兩支技能。
2026-08-27 09:43:20 +08:00
..
2026-08-25 14:58:54 +08:00
2026-08-25 14:58:54 +08:00
2026-08-27 09:43:20 +08:00
2026-08-25 14:58:54 +08:00
2026-08-25 14:58:54 +08:00
2026-08-25 16:41:57 +08:00
2026-08-25 14:58:54 +08:00