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

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

摘要

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

變更內容

檔案 為什麼改
skills/ask/SKILL.md 問詢紀錄頁與目錄列兩處都要驗
templates/question-contents.md 寫法本來就對,補上驗證要求
references/behaviors.md 隨上述變更對齊

設計重點

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

測試結果

  • check-link-format.sh(6 份文件)、check-behaviors.sh、ste100-lint.sh 全部結束碼 0。

前置 Push Request

  • 無
## 摘要 - 需求描述:連結加兩條限制。其一,文字加連結一律寫成 `[{文字}]({連結})`,取消 `[[...]]` 同 wiki 寫法。其二,連結先驗證連得到,才可以寫進文件。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `skills/ask/SKILL.md` | 問詢紀錄頁與目錄列兩處都要驗 | | `templates/question-contents.md` | 寫法本來就對,補上驗證要求 | | `references/behaviors.md` | 隨上述變更對齊 | ## 設計重點 - 只留一種連結寫法。兩種寫法並存時,每寫一條連結都得判斷兩端各自解到哪一個存取庫;統一成絕對網址,這個判斷整個消失。 - 驗證走 API,不看網頁狀態碼。私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把好連結判成壞的。 - `link-check.sh` 的結束碼 7(認證失敗)與 1(有死連結)分開。金鑰失效時 Gitea 對私有存取庫的回應與「頁不存在」難以分辨,混用會讓一次金鑰過期把整批還在的頁判死,接著被當成壞連結刪掉或改寫。 - 文件裡為了說明「不准這樣寫」而出現的雙括號字面,包在行內程式碼裡,`check-link-format.sh` 會先剝掉再判定,不會誤判。 ## 測試結果 - `check-link-format.sh`(6 份文件)、`check-behaviors.sh`、`ste100-lint.sh` 全部結束碼 0。 ## 前置 Push Request - 無
jiantw83 added 2 commits 2026-09-02 06:30:09 +00:00
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。

連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
admin merged commit 1600b11998 into develop 2026-09-02 06:46:50 +00:00
admin deleted branch feat/link-verification/main 2026-09-02 06:46:50 +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/ask#26