Files
cli/templates/check-contents.md
T
jiantw83 c76daa61ca feat(link): 連結一律寫成 [文字](絕對網址),寫入前先驗證連得到
取消 [[頁名]] 與 [[顯示文字|頁名]] 兩種同 wiki 寫法,不再分「同存取庫」與
「跨存取庫」兩條規則。那種寫法只在自己那個 wiki 內解析,寫錯不報錯,畫面上
看起來像普通文字或死連結,巡不到也修不了。

連結寫進頁面前先過 jsc-gitea 的 link-check.sh,結束碼 0 才寫。驗證一律走 API,
不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把
好連結判成壞的。認證失敗回 7,與死連結的 1 分開,免得金鑰一過期就把還在的頁
整批判死。
2026-09-02 14:27:18 +08:00

2.5 KiB
Raw Blame History

體檢目錄

由 jsc-cli:doctor 維護。每台執行環境一列;HASH 取 {短主機名}/{登入帳號},算法與其他頁面共用。主機名取不含網域的短名,FQDN 要先切掉第一個點之後的部分,否則同一台機器會多出第二頁。

本頁落在 JSC_WIKI_REPO_CONTENTS 解出的專用存取庫,與體檢頁 CHECK_{HASH} 不同庫。目錄頁全部住這裡,不退回 JSC_WIKI_REPO_CHECK。

寫入語意:一列代表一台執行環境,也就是一組主機加帳號。一律用 jsc-gitea/tools/wiki-contents.sh upsert CHECK 4 {HASH} {列檔} {本範本} 寫,它先讀回整頁,該執行環境已經有列就更新那一列,沒有才在表尾附加一列。禁止整頁覆蓋,也不得改動別人的列。體檢頁 CHECK_{HASH} 只留最新一次結果、可以整頁改寫,這份目錄頁不行。

鍵是第 4 欄的 HASH:jsc-gitea/tools/hash-id 印出什麼就填什麼,完整 40 碼大寫十六進位,不截短、不加前綴、不包成連結。腳本比對的是整格文字,鍵一定要跟這一格一字不差。

鍵用裸 HASH 才穩。GITEA_HOST 換掉、JSC_WIKI_REPO_CHECK 換過存取庫、Gitea 對頁名的網址編碼有差,網址就跟著變;拿含網址的儲存格當鍵,比對就永遠比不中,同一台機器每體檢一次就多附一列,畫面上還看不出來。

連結寫法:第 1 欄的連結只給人點,不當鍵用。一律寫成 [{文字}]({連結}),也就是 [CHECK_{HASH}]({wiki-url 印出的絕對網址}),網址取 jsc-gitea/tools/gitea.sh wiki-url 印出的那一串,不自己組路徑。同 wiki 的雙括號寫法一概不用:兩頁分屬不同存取庫,連不過去,畫面上還看不出壞掉。

連結驗證:這一列要寫進去的每一個連結,先交給 jsc-gitea/tools/link-check.sh,結束碼 0 才寫。有任何一筆 DEAD 就整列不寫,把連不到的清單回報給呼叫端。結束碼 3 代表 GITEA_HOST 沒設定,先設好再寫,不得跳過驗證;結束碼 7 代表金鑰失效,停下來回報金鑰問題,不要當成死連結。驗證一律走 API,不看網頁狀態碼:私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判會把好連結判成壞的,整批砍掉還在的頁。

體檢頁 主機 帳號 HASH 必要項缺漏 設定錯誤 最後體檢
[CHECK_{HASH}]({wiki-url 印出的絕對網址}) {短主機名} {使用者帳號} {HASH} {n} {n} {yyyy-MM-dd HH:mm}