Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
89853a8765 | ||
|
|
80665f06bd |
@@ -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,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": {
|
||||||
|
|||||||
@@ -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
@@ -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": {
|
||||||
|
|||||||
Reference in New Issue
Block a user