體檢目錄頁改成大標題加條列,doctor 與 setup 的呼叫同步換鍵 #58
1 Participants
Notifications
Due Date
No due date set.
Depends on
#52 wiki 目錄頁改成大標題加條列,舊表格讀到就自動轉檔
plugins/gitea
Reference: plugins/cli#58
Reference in New Issue
Block a user
摘要
*_CONTENTS)的呈現格式從 markdown 表格改成「大標題加條列式」——一筆紀錄一個 H2 區塊,H2 標題就是這一筆的鍵(該筆對應內容頁的實際頁名),欄位是標題底下的一層條列- {欄位名}:{值},目錄頁上不留任何 markdown 表格。本存取庫負責體檢目錄頁CHECK_CONTENTS的範本,以及doctor與setup兩支技能對它的呼叫,實際的轉檔與 upsert 邏輯全部在gitea/tools/wiki-contents.sh。內容頁維持原本的圖表優先,不在這一輪的範圍。變更內容
templates/check-contents.mdCHECK_{HASH},七個欄位改成- {欄位名}:{值}的一層條列;引言補上參數語意,並把「鍵用裸HASH」的說法改成「鍵用頁名」skills/doctor/SKILL.mdupsert CHECK 1 CHECK_{HASH},鍵從第 4 欄的裸HASH改成 H2 標題,並改成備妥區塊檔而不是列檔skills/setup/SKILL.mdreferences/behaviors.mddoctor與setup的關鍵步驟、外部呼叫、完成條件、可驗證跡象同步成條列式目錄頁,可驗證跡象改成驗 H2 區塊與欄位條列、整頁不留表格README.mddoctor與setup兩節的敘述同步成條列式目錄頁與新的 upsert 呼叫形式plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json設計重點
HASH改成 H2 標題文字,也就是體檢頁頁名CHECK_{HASH}。頁名只由{短主機名}/{登入帳號}決定,站台、存取庫與頁名編碼怎麼變都不影響它,比對永遠找得到同一台機器既有的那個區塊。標題不放連結、不放網址、不加日期、不加別的前後綴。{key-col}填1。這個參數指舊表格裡持有內容頁連結那一欄的欄位序號,CHECK_CONTENTS的舊表格第 1 欄就是[CHECK_{HASH}](網址),自動轉檔時取那一格的連結產生 H2 標題。原本沿用第 4 欄會在轉檔時取到裸HASH,標題跟鍵CHECK_{HASH}對不上,既有那一筆被當成新的附加上去,同一台機器在頁面上變成兩個區塊,舊區塊從此再也更新不到。## CHECK_{HASH}那一行、一個空行,再接體檢頁、主機、帳號、HASH、必要項缺漏、設定錯誤、最後體檢七條欄位 bullet。HASH從表格欄位變成區塊裡的一條,值本身不變。gitea.sh wiki-url印出的絕對網址並先過link-check.sh,但它不再兼任鍵,連結壞掉不會再連帶讓比對失準。gitea/tools/wiki-contents.sh一處。測試結果
tools/底下任何腳本,這個存取庫的既有腳本行為一字未變。git status --porcelain在提交後無輸出,git log --oneline origin/develop..HEAD只有本輪的 commit,工作區乾淨。jsc-hooks/hooks/comment-scope.sh sweep在提交前執行,結束碼 0,無命中。變更檔案全是 markdown 與 json,本來就不在該規則的掃描範圍內。gitea那一支的離線驗證check-contents-format.sh負責,本存取庫沒有可獨立驗證的執行路徑。前置 Push Request
gitea/tools/wiki-contents.sh,本存取庫只改敘述與範本。前置未合就先部署本存取庫,範本組出來的 H2 區塊會被舊版工具當成表格列附加到表格後面。What:`templates/check-contents.md` 從 markdown 表格改成一台執行環境一個 H2 區塊,H2 標題就是那一台的體檢頁頁名 `CHECK_{HASH}`,原本的七個欄位改成標題底下一層 `- {欄位名}:{值}` 的條列,頁上不留任何表格。`skills/doctor/SKILL.md` 與 `skills/setup/SKILL.md` 對目錄頁的呼叫從 `wiki-contents.sh upsert CHECK 4 "{HASH}"` 改成 `upsert CHECK 1 "CHECK_{HASH}"`,`references/behaviors.md` 的關鍵步驟、完成條件與可驗證跡象,以及 `README.md` 的兩段技能敘述都跟著對齊。 Why:一列七格的表格,欄位一多就要橫向捲動,讀的人得先數欄位再對照表頭才知道哪一格是什麼;一筆一個 H2 區塊、每一條自己帶欄位名,掃過去就讀得懂。版面換成區塊之後鍵也得跟著換:表格時代的鍵是第 4 欄的裸 `HASH`,區塊沒有欄位可指,唯一能當鍵的是 H2 標題。key-col 與 key 沿用舊值會讓腳本比對不中,同一台機器每體檢一次就在頁尾多附一個區塊,舊區塊從此再也更新不到,而頁面看起來完全正常,錯得無聲無息。頁名只由 `{短主機名}/{登入帳號}` 決定,`GITEA_HOST` 換掉、`JSC_WIKI_REPO_CHECK` 搬到別的存取庫、Gitea 對頁名的編碼有差都動不到它,拿它當鍵比拿任何含網址的值都穩。 How:範本頁首的寫入語意從「一列」改寫成「一個區塊」,並補上四個參數的說明。第三個參數 `<key>` 收 H2 標題文字,也就是 `CHECK_{HASH}`;第四個參數收的是區塊檔而不是列檔,內容為 `## CHECK_{HASH}` 那一行、一個空行,再照範本的欄位順序每欄一條條列,`HASH` 那一欄照樣要寫,標題是鍵不代表欄位可以省,否則下一個讀的人讀不到。第二個參數 `1` 定位成 `<key-col>`,只在頁面還留著舊表格、需要自動轉檔時才用得到,指舊表格裡持有 `[CHECK_{HASH}](網址)` 的第 1 欄,轉檔時取那一格的文字當 H2 標題,頁面已經是條列格式就忽略它。「體檢頁」那一條維持 `[{文字}]({絕對網址})` 的人用連結寫法,H2 標題本身不放連結也不放網址。兩支技能的結束碼分流一併校正:`wiki-contents.sh` 的結束碼 1 從「寫入失敗」改寫成「組不出頁面內容或寫入失敗」,頁上找不到本機那一個區塊不算這一碼,腳本會改成附加。實際的轉檔與 upsert 邏輯都在 `jsc-gitea/tools/wiki-contents.sh`,這個存取庫只改敘述與範本。 Who:屬於「wiki 目錄頁改條列式呈現」這個需求落在 jsc-cli 的部分,也就是 `CHECK_CONTENTS` 這一型目錄頁的去表格化。內容頁維持圖表優先,不在這一輪範圍。