Merge pull request '修正註解範圍守門把樣式表色碼誤判為議題編號的問題' (#96) from fix/comment-scope-hex-colour into develop

Reviewed-on: #96
This commit was merged in pull request #96.
This commit is contained in:
2026-09-08 07:08:20 +00:00
4 changed files with 10 additions and 5 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "jsc-hooks", "name": "jsc-hooks",
"version": "0.5.0", "version": "0.5.2",
"description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門", "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門",
"skills": "./skills", "skills": "./skills",
"author": { "author": {
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"hooks": "./hooks/codex-hooks.json", "hooks": "./hooks/codex-hooks.json",
"name": "jsc-hooks", "name": "jsc-hooks",
"version": "0.5.0", "version": "0.5.2",
"description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門", "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門",
"skills": "./skills", "skills": "./skills",
"jsc": { "jsc": {
+7 -2
View File
@@ -65,10 +65,14 @@ scan_file() { # $1=檔案路徑;命中就把報告印到 stdout 並回傳 1,
fi fi
# 只留註解行:行首註解符號,或行中出現 // 與 # 的行尾註解。 # 只留註解行:行首註解符號,或行中出現 // 與 # 的行尾註解。
comments=$(printf '%s\n' "$lines" | grep -E '^[[:space:]]*(//|#|--|\*|/\*|<!--|;|%)|[[:space:]](//|#)[[:space:]]' || true) # `--` 後面一定要接空白:CSS 自訂屬性也是 `--` 開頭(`--ink: #121a1d;`),
# 不要求空白就會把整份樣式表的變數宣告當成 SQL 註解送去比對,色碼再被咬成議題編號。
comments=$(printf '%s\n' "$lines" | grep -E '^[[:space:]]*(//|#|--[[:space:]]|\*|/\*|<!--|;|%)|[[:space:]](//|#)[[:space:]]' || true)
[ -n "$comments" ] || return 0 [ -n "$comments" ] || return 0
# 白名單先剪掉,再比對禁止樣式。剪掉而不是整行放行——同一行可能一半合規、一半違規。 # 白名單先剪掉,再比對禁止樣式。剪掉而不是整行放行——同一行可能一半合規、一半違規。
# 最後一條剪的是十六進位色碼:註解裡提到 `#e9eef0` 這種寫法,議題編號那一條會咬到開頭的
# 數字。只剪含十六進位字母的那些——議題編號是純十進位,所以剪不到真的編號。
cleaned=$(printf '%s\n' "$comments" | sed -E \ cleaned=$(printf '%s\n' "$comments" | sed -E \
-e 's#SPDX-License-Identifier:[^[:space:]]*##g' \ -e 's#SPDX-License-Identifier:[^[:space:]]*##g' \
-e 's#CVE-[0-9]{4}-[0-9]+##g' \ -e 's#CVE-[0-9]{4}-[0-9]+##g' \
@@ -76,7 +80,8 @@ scan_file() { # $1=檔案路徑;命中就把報告印到 stdout 並回傳 1,
-e 's#@(deprecated|since|param|returns?|throws|type|typedef|example|see|link|inheritdoc|override|nullable|internal)##g' \ -e 's#@(deprecated|since|param|returns?|throws|type|typedef|example|see|link|inheritdoc|override|nullable|internal)##g' \
-e 's#https?://(github|gitlab|bitbucket)\.com/[^[:space:]]*##g' \ -e 's#https?://(github|gitlab|bitbucket)\.com/[^[:space:]]*##g' \
-e 's#https?://[^[:space:]]*[{<][^[:space:]]*##g' \ -e 's#https?://[^[:space:]]*[{<][^[:space:]]*##g' \
-e 's#[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}##g') -e 's#[0-9]{4}[-/][0-9]{1,2}[-/][0-9]{1,2}##g' \
-e 's/(^|[^0-9A-Za-z_])#[0-9a-fA-F]*[a-fA-F][0-9a-fA-F]*([^0-9A-Za-z_]|$)/\1\2/g')
out=$( out=$(
hit '(^|[^[:alnum:]_/])#[0-9]+' '議題編號(#123)' hit '(^|[^[:alnum:]_/])#[0-9]+' '議題編號(#123)'
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "jsc-hooks", "name": "jsc-hooks",
"version": "0.5.0", "version": "0.5.2",
"description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門", "description": "跨 CLI hooks:STE100 語言強制、工時計時、技能用量記錄、SDLC 模型鎖、版本前置檢查、註解範圍守門、繁中編碼守門、部署後強制重啟、寫入與提交閘門",
"skills": "./skills/", "skills": "./skills/",
"jsc": { "jsc": {