docs(templates): 五個目錄頁範本改成大標題加條列

What
- `templates/plan-contents.md`、`templates/analyze-contents.md`、`templates/repo-contents.md`、`templates/deliver-contents.md`、`templates/maintain-contents.md` 的版面從 markdown 表格改成一筆一個 H2 區塊,欄位改成標題底下的一層條列。
- 四個有內容頁的型別,H2 標題寫成該筆對應內容頁的實際頁名;`MAINTAIN` 沒有內容頁,標題改用該存取庫的 `{owner}/{repo}`。
- 各範本的引言補上版面段,並把寫入語意從「單列 upsert」改寫成單一區塊 upsert,末端的示範資料改成一個完整的 H2 區塊。
- 引言裡寫明鍵欄的語意與各頁的正確序號,並點出填錯的靜默後果。

Why
- 目錄頁是全部使用者共用的索引。表格一寬就得橫向捲、欄位一多就對不上表頭,而且併行寫入時只要有人少打一根豎線,整張表就散掉,別人那一筆跟著看不見。
- 條列式一筆一個區塊,寫入端只換自己那一塊,壞掉也只壞自己那一塊。
- `MAINTAIN` 整個型別只有目錄頁,硬套內容頁頁名當標題會指向一個不存在的頁;存取庫名不會漂移,當鍵一樣穩。
- 鍵欄填錯時工具不會報錯,既有那一筆會被當成新的附加到頁尾,同一筆變兩個區塊,舊區塊從此再也更新不到,所以範本要把序號寫死。

How
- 一頁固定三段:H1 頁名、`>` 引言、然後每一筆一個 H2 區塊;欄位格式 `- {欄位名}:{值}`,全形冒號,順序照原本的欄位從左到右,鍵那一欄照樣留一條。
- 寫入示例統一成 `wiki-contents.sh upsert {TYPE} {鍵欄} "{鍵}" {區塊檔} [{本範本}]`,並註明第四個引數是整個 H2 區塊的 markdown,不是列檔。
- 頁上不留任何 markdown 表格;內容頁範本不在本輪範圍,維持圖表優先。

Who
- 影響照這五個範本寫目錄頁的四支階段技能。
- 舊表格頁的自動轉檔與單一區塊 upsert 的實作不在本存取庫,本存取庫只提供範本與敘述。
This commit is contained in:
2026-09-02 17:21:10 +08:00
parent 5ee9f50fb6
commit 19d918f499
5 changed files with 55 additions and 25 deletions
+11 -5
View File
@@ -1,11 +1,17 @@
# 分析目錄
> 存放位置:本頁是目錄頁,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫(沒設定就退回 `JSC_WIKI_REPO`,都沒設定就停)。分析頁 `ANALYZE_{HASH}` 住在 `JSC_WIKI_REPO_ANALYZE` 那一邊,兩者不同存取庫。
> 寫入語意:一列代表一份分析頁。一律用 `jsc-gitea/tools/wiki-contents.sh upsert ANALYZE 3 {HASH} {列檔} {本範本}` 單列寫回:該分析頁已經有列就更新那一列,沒有才附加一列,整頁一起送出。禁止整頁覆蓋,也不得改動別人的列。
> 版面:一個 H1 頁名、一段 `>` 引言,接著每一筆一個 H2 區塊。H2 標題就是該筆分析頁的實際頁名(示範區塊寫成 `ANALYZE_{HASH}` 只是佔位符,真正要填的是 `jsc-sdlc:analyze` 剛寫出去那一頁的頁名,線上實際長成 `ANALYZE_20260821_100552_104F0709` 這樣),標題不放連結、不加前後綴。欄位是標題底下的一層條列,一欄一條,格式 `- {欄位名}:{值}`。本頁不留 markdown 表格。
> 寫入語意:一個區塊代表一份分析頁。一律用 `jsc-gitea/tools/wiki-contents.sh upsert ANALYZE 2 {分析頁頁名} {區塊檔} {本範本}` 單筆寫回:該分析頁已經有區塊就更新那個區塊,沒有才附加一個區塊,整頁一起送出。禁止整頁覆蓋,也不得改動別人的區塊。參數語意:`2` 是舊表格裡持有內容頁連結那一欄的序號,也就是「分析頁」欄,只供自動轉檔用——本頁還是舊表格時,腳本從那一欄的連結網址取最後一段路徑當 H2 標題;本頁已經是條列版面就完全忽略它。這個序號填錯,轉出來的標題就跟鍵對不上,既有那一筆會被當成新的附加上去,同一份分析變成兩個區塊,舊區塊從此再也更新不到,所以不是死參數、也不能隨便填。`{分析頁頁名}` 是 H2 標題,填這一筆對應內容頁的實際頁名,也就是技能自己剛寫的那一頁的頁名,不套 `ANALYZE_{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`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> 寫入前驗證:要放進本頁的每一個連結先交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有一筆 DEAD 就整個區塊不寫,把連不到的清單回報給呼叫端。驗證走 API,不看網頁狀態碼:私有存取庫的網頁網址對沒帶金鑰的請求一律回 404,照狀態碼判會把還活著的頁判成死連結。結束碼 `1`=至少一筆連不到、`2`=一個網址都沒給、`3`=`GITEA_HOST` 未設定、`7`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> HASH:由 `jsc-gitea/tools/hash-id` 對 `{owner}/{repo}` 算出的完整 40 碼大寫十六進位,不截短、不加前綴。
| 計畫名稱 | 分析頁 | HASH | 工作包 | 未完成項目 | 狀態 |
| --- | --- | --- | --- | --- | --- |
| {計畫名稱} | [{計畫名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/ANALYZE_{HASH}) | {HASH} | WP-01、WP-02 | {n} | 未完成 |
## ANALYZE_{HASH}
- 計畫名稱:{計畫名稱}
- 分析頁:[{計畫名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/ANALYZE_{HASH})
- HASH:{HASH}
- 工作包:WP-01、WP-02
- 未完成項目:{n}
- 狀態:未完成
+13 -5
View File
@@ -1,13 +1,21 @@
# 交付目錄
> 存放位置:本頁是目錄頁,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫(沒設定就退回 `JSC_WIKI_REPO`,都沒設定就停)。交付頁 `DELIVER_{HASH}` 住在 `JSC_WIKI_REPO_DELIVER` 那一邊,兩者不同存取庫。
> 寫入語意:一列代表一個工作包的交付。一律用 `jsc-gitea/tools/wiki-contents.sh upsert DELIVER 6 {HASH} {列檔} {本範本}` 單列寫回:該工作包已經有列就更新那一列,沒有才附加一列,整頁一起送出。禁止整頁覆蓋,也不得改動別人的列。
> 版面:一個 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`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> 寫入前驗證:要放進本頁的每一個連結先交給 `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 碼大寫十六進位,不截短、不加前綴。一個工作包一頁,彼此不覆蓋。
<!-- 交付欄:是 = 交付、交接工作包(WP-01),接手者要據此動工;否 = 實作類工作包。 -->
| 計畫名稱 | 工作包 | 交付 | 交付型別 | 交付頁 | HASH | 存取庫 | 交付時間 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| {計畫名稱} | WP-01 {工作包名稱} | 是 | API 文件 | [{WP-01 工作包名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/DELIVER_{HASH}) | {HASH} | {owner}/{repo} | {yyyy-MM-dd HH:mm:ss} |
## DELIVER_{HASH}
- 計畫名稱:{計畫名稱}
- 工作包:WP-01 {工作包名稱}
- 交付:是
- 交付型別:API 文件
- 交付頁:[{WP-01 工作包名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/DELIVER_{HASH})
- HASH:{HASH}
- 存取庫:{owner}/{repo}
- 交付時間:{yyyy-MM-dd HH:mm:ss}
+10 -5
View File
@@ -1,12 +1,17 @@
# 維護目錄
> 存放位置:本頁是目錄頁,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫(沒設定就退回 `JSC_WIKI_REPO`,都沒設定就停)。`MAINTAIN` 只有目錄頁、沒有內容頁,所以整個型別的紀錄就在這一頁。
> 寫入語意:一列代表一個受維護的存取庫。一律用 `jsc-gitea/tools/wiki-contents.sh upsert MAINTAIN 1 {owner}/{repo} {列檔} {本範本}` 單列寫回:該存取庫已經有列就更新那一列,沒有才附加一列,整頁一起送出。禁止整頁覆蓋,也不得改動別人的列。
> 版面:一個 H1 頁名、一段 `>` 引言,接著每一筆一個 H2 區塊。`MAINTAIN` 沒有內容頁,所以 H2 標題就是該存取庫的 `{owner}/{repo}`,標題不放連結、不加前後綴。存取庫名不會漂移,當鍵一樣穩;反過來造一個 `MAINTAIN_{HASH}` 式的標題,等於指向一個不存在的頁。欄位是標題底下的一層條列,一欄一條,格式 `- {欄位名}:{值}`。本頁不留 markdown 表格。
> 寫入語意:一個區塊代表一個受維護的存取庫。一律用 `jsc-gitea/tools/wiki-contents.sh upsert MAINTAIN 1 {owner}/{repo} {區塊檔} {本範本}` 單筆寫回:該存取庫已經有區塊就更新那個區塊,沒有才附加一個區塊,整頁一起送出。禁止整頁覆蓋,也不得改動別人的區塊。參數語意:`1` 是舊表格裡持有這一筆身分的那一欄的序號,也就是「存取庫」欄,只供自動轉檔用——本頁還是舊表格時,腳本靠這一欄取出 H2 標題(該欄沒有連結,就取格子純文字);本頁已經是條列版面就完全忽略它。這個序號填錯,轉出來的標題就跟鍵對不上,既有那一筆會被當成新的附加上去,同一個存取庫變成兩個區塊,舊區塊從此再也更新不到,所以不是死參數、也不能隨便填。`{owner}/{repo}` 是 H2 標題,用來找既有區塊,寫這個存取庫實際的 `{owner}/{repo}`;`{區塊檔}` 是整個 H2 區塊的 markdown(`## {owner}/{repo}` 那一行加各條欄位),不是列檔。
> 連結寫法:一律寫成 `[{文字}]({連結})`。要指向別的頁型(例如交付頁)時,連結放 `jsc-gitea/tools/gitea.sh wiki-url` 給的絕對網址,不自行組路徑,也不用 `[[頁名]]` 或 `[[顯示文字|頁名]]`:後者只在同一個 wiki 內解析,寫錯不會報錯,畫面上看起來像純文字或死連結,巡不到也修不了。
> 寫入前驗證:要放進本頁的每一個連結先交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有一筆 DEAD 就整列不寫,把連不到的清單回報給呼叫端。驗證走 API,不看網頁狀態碼:私有存取庫的網頁網址對沒帶金鑰的請求一律回 404,照狀態碼判會把還活著的頁判成死連結。結束碼 `1`=至少一筆連不到、`2`=一個網址都沒給、`3`=`GITEA_HOST` 未設定、`7`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> 寫入前驗證:要放進本頁的每一個連結先交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有一筆 DEAD 就整個區塊不寫,把連不到的清單回報給呼叫端。驗證走 API,不看網頁狀態碼:私有存取庫的網頁網址對沒帶金鑰的請求一律回 404,照狀態碼判會把還活著的頁判成死連結。結束碼 `1`=至少一筆連不到、`2`=一個網址都沒給、`3`=`GITEA_HOST` 未設定、`7`=金鑰失效,停下回報金鑰問題,不得當成連不到。
<!-- 維護截止日 NULL = 永久維護 -->
| 存取庫 | 維護方式 | 維護起始日 | 維護截止日 | 前次維護時間 |
| --- | --- | --- | --- | --- |
| {owner}/{repo} | {例:套件更新與安全掃描} | {yyyy-MM-dd} | NULL | {yyyy-MM-dd} |
## {owner}/{repo}
- 存取庫:{owner}/{repo}
- 維護方式:{例:套件更新與安全掃描}
- 維護起始日:{yyyy-MM-dd}
- 維護截止日:NULL
- 前次維護時間:{yyyy-MM-dd}
+11 -5
View File
@@ -1,11 +1,17 @@
# 計畫目錄
> 存放位置:本頁是目錄頁,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫(沒設定就退回 `JSC_WIKI_REPO`,都沒設定就停)。計畫頁 `PLAN_{HASH}` 住在 `JSC_WIKI_REPO_PLAN` 那一邊,兩者不同存取庫。
> 寫入語意:一列代表一份計畫。一律用 `jsc-gitea/tools/wiki-contents.sh upsert PLAN 4 {HASH} {列檔} {本範本}` 單列寫回:該計畫已經有列就更新那一列,沒有才附加一列,整頁一起送出。禁止整頁覆蓋,也不得改動別人的列。
> 版面:一個 H1 頁名、一段 `>` 引言,接著每一筆一個 H2 區塊。H2 標題就是該筆計畫頁的實際頁名(示範區塊寫成 `PLAN_{HASH}` 只是佔位符,真正要填的是 `jsc-sdlc:plan` 剛寫出去那一頁的頁名),標題不放連結、不加前後綴。欄位是標題底下的一層條列,一欄一條,格式 `- {欄位名}:{值}`。本頁不留 markdown 表格。
> 寫入語意:一個區塊代表一份計畫。一律用 `jsc-gitea/tools/wiki-contents.sh upsert PLAN 2 {計畫頁頁名} {區塊檔} {本範本}` 單筆寫回:該計畫已經有區塊就更新那個區塊,沒有才附加一個區塊,整頁一起送出。禁止整頁覆蓋,也不得改動別人的區塊。參數語意:`2` 是舊表格裡持有內容頁連結那一欄的序號,也就是「計畫頁」欄,只供自動轉檔用——本頁還是舊表格時,腳本從那一欄的連結網址取最後一段路徑當 H2 標題;本頁已經是條列版面就完全忽略它。這個序號填錯,轉出來的標題就跟鍵對不上,既有那一筆會被當成新的附加上去,同一份計畫變成兩個區塊,舊區塊從此再也更新不到,所以不是死參數、也不能隨便填。`{計畫頁頁名}` 是 H2 標題,填這一筆對應內容頁的實際頁名,也就是技能自己剛寫的那一頁的頁名,不套 `PLAN_{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`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> 寫入前驗證:要放進本頁的每一個連結先交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有一筆 DEAD 就整個區塊不寫,把連不到的清單回報給呼叫端。驗證走 API,不看網頁狀態碼:私有存取庫的網頁網址對沒帶金鑰的請求一律回 404,照狀態碼判會把還活著的頁判成死連結。結束碼 `1`=至少一筆連不到、`2`=一個網址都沒給、`3`=`GITEA_HOST` 未設定、`7`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> HASH:由 `jsc-gitea/tools/hash-id` 對 `{owner}/{repo}` 算出的完整 40 碼大寫十六進位,不截短、不加前綴。
| 計畫名稱 | 計畫頁 | 存取庫 | HASH | 狀態 | 建立時間 |
| --- | --- | --- | --- | --- | --- |
| {計畫名稱} | [{計畫名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/PLAN_{HASH}) | {owner}/{repo} | {HASH} | 未分析 | {yyyy-MM-dd} |
## PLAN_{HASH}
- 計畫名稱:{計畫名稱}
- 計畫頁:[{計畫名稱}](https://{gitea 主機}/{owner}/{repo}/wiki/PLAN_{HASH})
- 存取庫:{owner}/{repo}
- HASH:{HASH}
- 狀態:未分析
- 建立時間:{yyyy-MM-dd}
+10 -5
View File
@@ -1,11 +1,16 @@
# 盤點目錄
> 存放位置:本頁是目錄頁,落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫(沒設定就退回 `JSC_WIKI_REPO`,都沒設定就停)。盤點頁 `REPO_{HASH}` 住在 `JSC_WIKI_REPO_REPO` 那一邊,兩者不同存取庫。
> 寫入語意:一列代表一個存取庫的盤點。一律用 `jsc-gitea/tools/wiki-contents.sh upsert REPO 1 {owner}/{repo} {列檔} {本範本}` 單列寫回:該存取庫已經有列就更新那一列,沒有才附加一列,整頁一起送出。禁止整頁覆蓋,也不得改動別人的列。
> 版面:一個 H1 頁名、一段 `>` 引言,接著每一筆一個 H2 區塊。H2 標題就是該筆盤點頁的實際頁名(示範區塊寫成 `REPO_{HASH}` 只是佔位符,真正要填的是盤點那一步剛寫出去那一頁的頁名),標題不放連結、不加前後綴。欄位是標題底下的一層條列,一欄一條,格式 `- {欄位名}:{值}`。本頁不留 markdown 表格。
> 寫入語意:一個區塊代表一個存取庫的盤點。一律用 `jsc-gitea/tools/wiki-contents.sh upsert REPO 2 {盤點頁頁名} {區塊檔} {本範本}` 單筆寫回:該存取庫已經有區塊就更新那個區塊,沒有才附加一個區塊,整頁一起送出。禁止整頁覆蓋,也不得改動別人的區塊。參數語意:`2` 是舊表格裡持有內容頁連結那一欄的序號,也就是「盤點頁」欄,只供自動轉檔用——本頁還是舊表格時,腳本從那一欄的連結網址取最後一段路徑當 H2 標題;本頁已經是條列版面就完全忽略它。這個序號填錯,轉出來的標題就跟鍵對不上,既有那一筆會被當成新的附加上去,同一個存取庫的盤點變成兩個區塊,舊區塊從此再也更新不到,所以不是死參數、也不能隨便填。`{盤點頁頁名}` 是 H2 標題,填這一筆對應內容頁的實際頁名,也就是技能自己剛寫的那一頁的頁名,不套 `REPO_{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`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> 寫入前驗證:要放進本頁的每一個連結先交給 `jsc-gitea/tools/link-check.sh`,結束碼 0 才寫入。有一筆 DEAD 就整個區塊不寫,把連不到的清單回報給呼叫端。驗證走 API,不看網頁狀態碼:私有存取庫的網頁網址對沒帶金鑰的請求一律回 404,照狀態碼判會把還活著的頁判成死連結。結束碼 `1`=至少一筆連不到、`2`=一個網址都沒給、`3`=`GITEA_HOST` 未設定、`7`=金鑰失效,停下回報金鑰問題,不得當成連不到。
> HASH:由 `jsc-gitea/tools/hash-id` 對該存取庫自己的 `{owner}/{repo}` 算出的完整 40 碼大寫十六進位,不截短、不加前綴。
| 存取庫 | 盤點頁 | HASH | commit sha | 盤點時間 |
| --- | --- | --- | --- | --- |
| {owner}/{repo} | [{owner}/{repo}](https://{gitea 主機}/{owner}/{repo}/wiki/REPO_{HASH}) | {HASH} | `{sha}` | {yyyy-MM-dd} |
## REPO_{HASH}
- 存取庫:{owner}/{repo}
- 盤點頁:[{owner}/{repo}](https://{gitea 主機}/{owner}/{repo}/wiki/REPO_{HASH})
- HASH:{HASH}
- commit sha:`{sha}`
- 盤點時間:{yyyy-MM-dd}