# 問詢目錄 > 由 `jsc-ask:ask` 維護。這是問詢目錄頁 `QUESTION_CONTENTS`,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫,和問詢紀錄頁不同庫。每個存取庫一個區塊;`QUESTION_{HASH}` 的 `{HASH}` 執行 `jsc-gitea/tools/hash-id {owner}/{repo}` 取得,原樣採用它印出的完整 40 碼大寫十六進位,不截短、不加前綴(共用 wiki hash 規則,演算法見 `jsc-meta` 的 `references/guidelines.md`)。 > > 版面:H1 頁名、這段 `>` 引言,然後每個存取庫一個 H2 區塊。H2 標題就是該存取庫的問詢紀錄頁頁名 `QUESTION_{HASH}`,標題不放連結、不放網址、不加前後綴。欄位一條一行,格式 `- {欄位名}:{值}`,全形冒號,順序是存取庫名稱、問詢紀錄、最後更新。標題與第一條之間空一行,區塊之間空一行。頁面上不留 markdown 表格。 > > 寫入語意:一個區塊代表一個存取庫。一律用 `jsc-gitea/tools/wiki-contents.sh upsert` 寫入:它讀回整頁,該存取庫已經有區塊就整塊換掉,沒有才在文末附加一個區塊,最後整頁寫回。只動自己那個區塊,禁止整頁覆蓋,也不得改動別人的區塊。 > > 參數語意:`upsert QUESTION 2 {key} {區塊檔} {範本}`。第二個參數是 `{key-col}`,指舊表格裡持有內容頁連結那一欄的欄位序號(1 起算);本頁舊表格的欄序是存取庫名稱、問詢紀錄、最後更新,帶連結的是第 2 欄「問詢紀錄」,所以這裡固定帶 `2`。它只在舊頁還是 markdown 表格、要自動轉成條列時才用得到,頁面已經是條列格式就完全忽略它;但它不是死參數,也不能隨便填:轉檔時工具會拿那一欄的連結產生 H2 標題,填成 `1` 就取到純文字的 `{owner}/{repo}`,標題變成 `## plugins/meta`,比不到鍵 `QUESTION_{HASH}`,既有那一筆會被當成新的附加上去,同一個存取庫在頁面上出現兩次,舊區塊從此再也更新不到。`{key}` 是 H2 標題文字,也就是內容頁頁名 `QUESTION_{HASH}`,用來找既有區塊。第四個參數是區塊檔,內容是整個 H2 區塊的 markdown,不是單列。 > > 連結寫法:問詢紀錄那一條一律寫成 `[{文字}]({連結})`,連結取自 `jsc-gitea/tools/gitea.sh wiki-url` 印出的絕對網址,不自行組路徑。兩頁分屬不同存取庫,只有絕對網址連得過去。 > > 連結驗證:這個區塊寫進頁面前,先把區塊裡的每一個連結交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有任一筆 DEAD 就整個區塊不寫,把連不到的清單回報給呼叫端。結束碼 3 代表 `GITEA_HOST` 沒設定,先設定再驗證,不得跳過;結束碼 7 代表金鑰失效,停下來回報,別把還在的頁當成死連結。 ## QUESTION_{HASH} - 存取庫名稱:{owner}/{repo} - 問詢紀錄:[QUESTION_{HASH}]({wiki-url 印出的絕對網址}) - 最後更新:{yyyy-MM-dd HH:mm}