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

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

3.3 KiB
Raw Blame History

技能組異動目錄

由 jsc-meta 的 skill-new、skill-update、skill-delete、skillset-update、skill-check 共同維護。這是目錄頁 SKILLSET_CONTENTS。 一列代表一個 domain 存取庫。技能組有幾個 domain 被改過,就有幾列。 本頁落在 JSC_WIKI_REPO_CONTENTS 解出來的存取庫,不是內容頁那一個。解析鏈是 JSC_WIKI_REPO_CONTENTS → JSC_WIKI_REPO → exit 3,中間不退回 JSC_WIKI_REPO_SKILLSET。 寫入一律用 jsc-gitea/tools/wiki-contents.sh upsert SKILLSET 2 "{owner}/{repo}" {列檔} templates/skillset-contents.md:<TYPE> 填 SKILLSET,鍵欄填數字 2,也就是「存取庫」那一欄。 它讀回整頁、換掉鍵欄相符的那一列、找不到才附加,最後整頁寫回。不得手工改目錄頁。 SKILLSET_{HASH} 的 {HASH} 交給 jsc-gitea/tools/hash-id 產生,雜湊來源見 jsc-meta/references/guidelines.md 的「Wiki 頁命名總表」。 連結寫法:所有連結一律 [{文字}]({連結}),網址放 jsc-gitea/tools/gitea.sh wiki-url 印出的絕對網址,不用 [[...]]。寫入前先把每個連結交給 jsc-gitea/tools/link-check.sh 驗證,結束碼 0 才寫入;驗證走 API,不看網頁狀態碼。

異動頁 存取庫 最近異動 異動次數 最後更新
[SKILLSET_{HASH}]({wiki-url 印出的絕對網址}) {owner}/{repo} {一句話寫這一次改了什麼} {n} {yyyy-MM-dd HH:mm}

欄位說明

欄位 內容
異動頁 [SKILLSET_{HASH}]({連結}),連結是 gitea.sh wiki-url 印出的絕對網址。{owner}/{repo} 是內容頁那一個存取庫
存取庫 被改動的 domain 存取庫 {owner}/{repo},也就是這一頁的雜湊來源
最近異動 最後一次異動的一句話摘要,與內容頁最新一節的「異動需求」同一句
異動次數 該內容頁累積的節數。內容頁只附加不覆蓋,所以這個數字只會往上加
最後更新 最後一次寫入內容頁的時間,與那一節的日期一致

為什麼連結要用絕對網址,還要先驗證

目錄頁與內容頁分屬不同存取庫。同 wiki 連結解到的是目錄頁自己那個存取庫,那裡沒有這一頁,點下去是 404。 更麻煩的是它看起來像「頁沒寫成功」,實際上頁好好的,只是連結指錯地方,查的人會回去重寫一次已經寫好的頁。

驗證則走 API,不看網頁狀態碼。私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判斷會把還在的頁判成死連結,接著被刪掉或改寫。

寫入規則

  • 一律走 jsc-gitea/tools/wiki-contents.sh upsert,鍵欄是第 2 欄「存取庫」,鍵值是 {owner}/{repo}。
  • 那支腳本先整頁讀回來,再比對「存取庫」欄。
  • 該欄相同就更新那一列,其餘欄位覆寫成本次結果。
  • 找不到相同的一列,才新增一列。
  • 只動自己那一列,別人的列原樣保留。
  • 禁止整頁覆蓋。這一頁是全部 domain 共用的索引,覆蓋等於刪掉別的 domain 的紀錄。
  • 讀不到舊內容就中止,不新增列,也不寫入。
  • 先寫內容頁,成功了才回來更新這一列。目錄列指向一個寫失敗的頁,比缺一列更難查。