連結一律寫成 [文字](絕對網址),並在寫入前驗證連得到 #75

Merged
admin merged 2 commits from feat/link-verification/main into develop 2026-09-02 06:46:41 +00:00
Member

摘要

  • 需求描述:連結加兩條限制。其一,文字加連結一律寫成 [{文字}]({連結}),取消 [[...]] 同 wiki 寫法。其二,連結先驗證連得到,才可以寫進文件。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/report-error.sh 異常目錄頁那一列帶連結,沒驗過就會在別人查問題的入口長出死連結
templates/error-contents.md 範本的欄位示範還是舊寫法
skills/hooks-install/SKILL.md 補上「連結驗不過」這第三種 stderr 情形
README.md、references/behaviors.md 隨上述變更對齊

設計重點

  • 只留一種連結寫法。兩種寫法並存時,每寫一條連結都得判斷兩端各自解到哪一個存取庫;統一成絕對網址,這個判斷整個消失。
  • 驗證走 API,不看網頁狀態碼。私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把好連結判成壞的。
  • link-check.sh 的結束碼 7(認證失敗)與 1(有死連結)分開。金鑰失效時 Gitea 對私有存取庫的回應與「頁不存在」難以分辨,混用會讓一次金鑰過期把整批還在的頁判死,接著被當成壞連結刪掉或改寫。
  • 文件裡為了說明「不准這樣寫」而出現的雙括號字面,包在行內程式碼裡,check-link-format.sh 會先剝掉再判定,不會誤判。

測試結果

  • 既有的降級語意一行未動:四種安靜降級、只解不出目錄頁存取庫就只寫異常頁、wiki-get 回 7 或 8 放棄目錄頁以 4 回報,全部原樣。腳本只有 set -u、沒有 set -e,驗證回非 0 不會中斷回報路徑。
  • 新增的驗證只決定那一格寫不寫連結,驗不過就留純文字頁名,結束碼不變。
  • sh -n、check-link-format.sh、check-behaviors.sh、lint-scripts.sh、ste100-lint.sh 全部結束碼 0。

前置 Push Request

  • 無
## 摘要 - 需求描述:連結加兩條限制。其一,文字加連結一律寫成 `[{文字}]({連結})`,取消 `[[...]]` 同 wiki 寫法。其二,連結先驗證連得到,才可以寫進文件。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/report-error.sh` | 異常目錄頁那一列帶連結,沒驗過就會在別人查問題的入口長出死連結 | | `templates/error-contents.md` | 範本的欄位示範還是舊寫法 | | `skills/hooks-install/SKILL.md` | 補上「連結驗不過」這第三種 stderr 情形 | | `README.md`、`references/behaviors.md` | 隨上述變更對齊 | ## 設計重點 - 只留一種連結寫法。兩種寫法並存時,每寫一條連結都得判斷兩端各自解到哪一個存取庫;統一成絕對網址,這個判斷整個消失。 - 驗證走 API,不看網頁狀態碼。私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把好連結判成壞的。 - `link-check.sh` 的結束碼 7(認證失敗)與 1(有死連結)分開。金鑰失效時 Gitea 對私有存取庫的回應與「頁不存在」難以分辨,混用會讓一次金鑰過期把整批還在的頁判死,接著被當成壞連結刪掉或改寫。 - 文件裡為了說明「不准這樣寫」而出現的雙括號字面,包在行內程式碼裡,`check-link-format.sh` 會先剝掉再判定,不會誤判。 ## 測試結果 - 既有的降級語意一行未動:四種安靜降級、只解不出目錄頁存取庫就只寫異常頁、`wiki-get` 回 7 或 8 放棄目錄頁以 4 回報,全部原樣。腳本只有 `set -u`、沒有 `set -e`,驗證回非 0 不會中斷回報路徑。 - 新增的驗證只決定那一格寫不寫連結,驗不過就留純文字頁名,結束碼不變。 - `sh -n`、`check-link-format.sh`、`check-behaviors.sh`、`lint-scripts.sh`、`ste100-lint.sh` 全部結束碼 0。 ## 前置 Push Request - 無
jiantw83 added 2 commits 2026-09-02 06:30:12 +00:00
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。

連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
admin merged commit 56aa3e832f into develop 2026-09-02 06:46:41 +00:00
admin deleted branch feat/link-verification/main 2026-09-02 06:46:41 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/hooks#75