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

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

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

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

17 lines
2.0 KiB
Markdown

# 教訓目錄
> 由 `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}