19
SKILLSET_CONTENTS
Jeffery edited this page 2026-09-02 10:19:09 +00:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

技能組異動目錄

由 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 "SKILLSET_{HASH}" {區塊檔} templates/skillset-contents.md:<TYPE> 填 SKILLSET,<key> 填這一筆的 H2 標題,也就是內容頁頁名 SKILLSET_{HASH},第四個參數是整個 H2 區塊的檔案,不是一列表格。 <key-col> 填 2。這個參數填的是舊表格裡持有「內容頁連結」那一欄的序號,只在舊頁還是 markdown 表格、需要自動轉檔時才用得到:轉檔時工具從那一欄的連結網址取最後一段路徑當 H2 標題。序號要照線上那一頁實際的欄位排法數,不是照這份範本的欄位排法——線上 SKILLSET_CONTENTS 的舊表頭是 | 存放庫 | 異動報告 | 目前版本 | 最後更新 |,連結在第 2 欄,第 1 欄是 plugins/ask 這種純文字。填成 1 會把標題轉成 plugins/ask,跟鍵 SKILLSET_{HASH} 對不上,既有那一筆會被當成新的附加上去,同一筆變兩個區塊,舊區塊從此再也更新不到。頁面已經是條列格式時這個參數完全不影響結果。 它讀回整頁、換掉 H2 標題相符的那個區塊、找不到才附加到頁尾,最後整頁寫回。不得手工改目錄頁。 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}]({連結}),連結是 gitea.sh wiki-url 印出的絕對網址。與 H2 標題指的是同一頁,標題不放連結,這一條才放。
  • 存取庫:被改動的 domain 存取庫 {owner}/{repo},也就是那一頁的雜湊來源。
  • 最近異動:最後一次異動的一句話摘要,與內容頁最新一節的「異動需求」同一句。
  • 異動次數:該內容頁累積的節數。內容頁只附加不覆蓋,所以這個數字只會往上加。
  • 最後更新:最後一次寫入內容頁的時間,與那一節的日期一致。

為什麼 H2 標題寫頁名:頁名只由 {owner}/{repo} 決定,換主機名、JSC_WIKI_REPO_SKILLSET 改指別的存取庫、Gitea 的頁名編碼有差,都動不到它。鍵夠穩,upsert 才比得到既有那一筆;鍵一漂,同一個 domain 就多出第二個區塊,兩邊都寫得成功,也都看不出被分裂。

為什麼連結要用絕對網址,還要先驗證:目錄頁與內容頁分屬不同存取庫。同 wiki 連結解到的是目錄頁自己那個存取庫,那裡沒有這一頁,點下去是 404。更麻煩的是它看起來像「頁沒寫成功」,實際上頁好好的,只是連結指錯地方,查的人會回去重寫一次已經寫好的頁。驗證則走 API,不看網頁狀態碼。私有存取庫的網頁網址對未登入請求一律回 404,拿狀態碼判斷會把還在的頁判成死連結,接著被刪掉或改寫。

寫入規則:

  • 一律走 jsc-gitea/tools/wiki-contents.sh upsert,鍵是 H2 標題 SKILLSET_{HASH}。
  • 那支腳本先整頁讀回來,再逐個比對 H2 標題。
  • 標題相同就整塊換掉,區塊裡的每一條都覆寫成本次結果。
  • 找不到相同的標題,才附加一個新區塊。
  • 只動自己那一個區塊,別人的區塊原樣保留。
  • 禁止整頁覆蓋。這一頁是全部 domain 共用的索引,覆蓋等於刪掉別的 domain 的紀錄。
  • 讀不到舊內容就中止,不附加區塊,也不寫入。
  • 這一頁不留任何 markdown 表格。舊頁還是表格時由 wiki-contents.sh 自動轉成條列後寫回,不要手工搬。
  • 先寫內容頁,成功了才回來更新這個區塊。目錄頁指向一個寫失敗的頁,比缺一筆更難查。

SKILLSET_1C516D85C9D5F1417A8ECD8CEFBFB05225AD2B13

SKILLSET_E0494A8CA74F9D21AF51BC724B66D313C784A31E

SKILLSET_BFC1D623D258F45212D00B4CEC30C9C9E30B0F53

SKILLSET_5C98A299CD288EB41EEBEE11E1F7395070609F69

SKILLSET_A9517501C8DD86B4ACED1F374F3A4998C1E4C091

SKILLSET_D79F03B5433CB4635656AC7AC44004C002A6A47A

SKILLSET_A625EB394F74B67358606326BC529C74F7DF3073

SKILLSET_FB8DF0B5646689B45747957081FDFA56503E19A2

SKILLSET_36DEDDFCF10FAE0D0BF57BC7C6AA6219B2586A3C

SKILLSET_F3320613CFAE2AD08949E97F29C5C1B4E8F1C62C

SKILLSET_099C37C1B0D7AC4D77C5F8044CE2DFDB42F99D39