Files
log/templates/learn-contents.md
T
jiantw83 cce75e2f45 feat(learn): 教訓目錄頁改成一個存取庫一個大標題區塊
教訓目錄頁的版面從 markdown 表格換成「大標題加條列」:一個存取庫一個大標題
區塊,標題就是那個存取庫教訓頁的實際頁名,存取庫名稱、教訓紀錄連結、最後
更新時間改成標題底下的一層條列。範本與 learn 技能的寫入敘述一起跟上。

表格的欄位組合是整頁共用的,一頁上卻有很多存取庫各自的紀錄,每一輪只重寫
自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋——
覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己
那一個區塊。

比對鍵從存取庫名稱那一格改成大標題本身,標題寫成教訓頁的實際頁名。頁名只由
存取庫的擁有者與名稱決定,換主機位址、改存取庫或頁名編碼有差都動不到它。
欄號那個參數配合線上實際欄位改成教訓紀錄那一欄:轉檔時取那一格的文字當
標題,格子寫成連結就只取顯示文字。欄號填錯的話,轉出來的標題跟鍵對不上,
既有那一筆會被當成新的附加上去,同一個存取庫變兩個區塊。

範圍是教訓紀錄的目錄頁與 learn 技能。
2026-09-02 17:22:33 +08:00

2.0 KiB

教訓目錄

由 jsc-log:learn 維護。這是教訓目錄頁 LEARN_CONTENTS。每個存取庫一個區塊;LEARN_{HASH} 的 {HASH} 依共用 wiki hash 規則產生:取 {owner}/{repo} 的完整 SHA-1 四十碼,a-f 轉大寫,不截短、不加前綴。 本頁落在 JSC_WIKI_REPO_CONTENTS 解出的專用存取庫,教訓頁 LEARN_{HASH} 落在 JSC_WIKI_REPO_LEARN 的存取庫,兩者分屬不同 wiki。 連結寫法:教訓紀錄那一條寫成 [{頁名}]({絕對網址}),網址取自 jsc-gitea/tools/gitea.sh wiki-url,不用 [[...]]。兩頁分屬不同存取庫,[[...]] 連不過去,畫面上還看不出壞掉。 連結驗證:每個要寫進本頁的連結先交給 jsc-gitea/tools/link-check.sh,退出碼 0 才寫入。出現 DEAD 就不寫,把連不到的那幾筆回報給呼叫端。 寫入語意:一個區塊代表一個存取庫。一律用 jsc-gitea/tools/wiki-contents.sh upsert LEARN 2 LEARN_{HASH} {區塊檔} {本範本} 單一區塊整頁寫回——它讀整頁、找得到該存取庫既有的那個區塊就換掉,找不到才附加到頁尾。 參數語意:<key-col> 的 2 只在舊頁還是表格時用得到,代表轉檔時取第 2 欄格子的文字當 H2 標題,格子是 [文字](網址) 就只取文字;頁面已經是條列格式就完全忽略它。<key> 是 H2 標題文字,也就是內容頁頁名 LEARN_{HASH}。第四個參數是區塊檔,內容是 ## {key} 那一行加空行加各條欄位,不是一列表格。 鍵是 H2 標題的頁名,不是連結。頁名只由 {owner}/{repo} 決定,換主機名、改存取庫、頁名編碼有差都動不到它;連結帶著主機名與存取庫名,一變就比不到鍵,同一個存取庫會多出第二個區塊。 禁止整頁覆蓋,也不得改動別人的區塊。

LEARN_{HASH}

  • 存取庫名稱:{owner}/{repo}
  • 教訓紀錄:LEARN_{HASH}
  • 最後更新時間:{yyyy-MM-dd HH:mm}