# 交付目錄 > 存放位置:本頁是目錄頁,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫(沒設定就退回 `JSC_WIKI_REPO`,都沒設定就停)。交付頁 `DELIVER_{HASH}` 住在 `JSC_WIKI_REPO_DELIVER` 那一邊,兩者不同存取庫。 > 版面:一個 H1 頁名、一段 `>` 引言,接著每一筆一個 H2 區塊。H2 標題就是該筆交付頁的實際頁名(示範區塊寫成 `DELIVER_{HASH}` 只是佔位符,真正要填的是 `jsc-sdlc:implement` 剛寫出去那一頁的頁名),標題不放連結、不加前後綴。欄位是標題底下的一層條列,一欄一條,格式 `- {欄位名}:{值}`。本頁不留 markdown 表格。 > 寫入語意:一個區塊代表一個工作包的交付。一律用 `jsc-gitea/tools/wiki-contents.sh upsert DELIVER 5 {交付頁頁名} {區塊檔} {本範本}` 單筆寫回:該工作包已經有區塊就更新那個區塊,沒有才附加一個區塊,整頁一起送出。禁止整頁覆蓋,也不得改動別人的區塊。參數語意:`5` 是舊表格裡持有內容頁連結那一欄的序號,也就是「交付頁」欄,只供自動轉檔用——本頁還是舊表格時,腳本從那一欄的連結網址取最後一段路徑當 H2 標題;本頁已經是條列版面就完全忽略它。這個序號填錯,轉出來的標題就跟鍵對不上,既有那一筆會被當成新的附加上去,同一個工作包的交付變成兩個區塊,舊區塊從此再也更新不到,所以不是死參數、也不能隨便填。`{交付頁頁名}` 是 H2 標題,填這一筆對應內容頁的實際頁名,也就是技能自己剛寫的那一頁的頁名,不套 `DELIVER_{HASH}` 的公式;`{區塊檔}` 是整個 H2 區塊的 markdown(`## {交付頁頁名}` 那一行加各條欄位),不是列檔。 > 連結寫法:一律寫成 `[{文字}]({連結})`。交付頁欄位的連結放 `jsc-gitea/tools/gitea.sh wiki-url` 給的絕對網址,不自行組路徑,也不用 `[[頁名]]` 或 `[[顯示文字|頁名]]`:後者只在同一個 wiki 內解析,寫錯不會報錯,畫面上看起來像純文字或死連結,巡不到也修不了。 > 寫入前驗證:要放進本頁的每一個連結先交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有一筆 DEAD 就整個區塊不寫,把連不到的清單回報給呼叫端。驗證走 API,不看網頁狀態碼:私有存取庫的網頁網址對沒帶金鑰的請求一律回 404,照狀態碼判會把還活著的頁判成死連結。結束碼 `1`=至少一筆連不到、`2`=一個網址都沒給、`3`=`GITEA_HOST` 未設定、`7`=金鑰失效,停下回報金鑰問題,不得當成連不到。 > HASH:由 `jsc-gitea/tools/hash-id` 對 `{owner}/{repo}` 加工作包編號(例 `plugins/sdlc#WP-01`)算出的完整 40 碼大寫十六進位,不截短、不加前綴。一個工作包一頁,彼此不覆蓋。 ## DELIVER_{HASH} - 計畫名稱:{計畫名稱} - 工作包:WP-01 {工作包名稱} - 交付:是 - 交付型別:API 文件 - 交付頁:[{WP-01 工作包名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/DELIVER_{HASH}) - HASH:{HASH} - 存取庫:{owner}/{repo} - 交付時間:{yyyy-MM-dd HH:mm:ss}