feat(report): 報表目錄頁改成一個報表頁一個大標題區塊
報表目錄頁的版面從 markdown 表格換成「大標題加條列」:一個報表頁一個大標題 區塊,也就是一個存取庫的一種期間一個區塊,標題就是那個報表頁的實際頁名, 期間、最新一期、期數這些欄位改成標題底下的一層條列。範本與 report 技能的 寫入敘述與退出碼說明一起跟上。 表格的欄位組合是整頁共用的,一頁上卻有很多報表頁各自的紀錄,每一輪只重寫 自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋—— 覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己 那一個區塊。 比對鍵從裸雜湊那一格改成大標題本身,標題寫成報表頁的實際頁名。頁名只由 存取庫的擁有者、名稱與期間決定,換主機位址或頁名編碼有差都動不到它;含 網址的那一條連結照樣留著給人點,但不當鍵。把報表存取庫改指別的庫是另一回 事:雜湊本身就取自那個庫,換庫等於換頁,四種期間會各多一個區塊,那是換庫 的本意,不是鍵失準,舊區塊請人工清掉。 範圍是工作報表的目錄頁與 report 技能。
This commit is contained in:
@@ -1,14 +1,20 @@
|
||||
# 報表目錄
|
||||
|
||||
> 由 `jsc-log:report` 維護。年、月、週、日各一頁;`HASH` 取 `{owner}/{repo}/{期間}` 的完整 40 碼大寫十六進位 SHA-1,算法與其他頁面共用,但這裡的 `{owner}/{repo}` 取 REPORT wiki 存取庫,不是程式碼存取庫。
|
||||
> 由 `jsc-log:report` 維護。年、月、週、日各一個區塊;`HASH` 取 `{owner}/{repo}/{期間}` 的完整 40 碼大寫十六進位 SHA-1,算法與其他頁面共用,但這裡的 `{owner}/{repo}` 取 REPORT wiki 存取庫,不是程式碼存取庫。
|
||||
> 本頁落在 `JSC_WIKI_REPO_CONTENTS` 解出的專用存取庫,報表頁 `REPORT_{HASH}` 落在 `JSC_WIKI_REPO_REPORT` 的存取庫,兩者分屬不同 wiki。
|
||||
> 連結寫法:報表頁那一欄寫成 `[{頁名}]({絕對網址})`,網址取自 `jsc-gitea/tools/gitea.sh wiki-url`,不用 `[[...]]`。兩頁分屬不同存取庫,`[[...]]` 連不過去,畫面上還看不出壞掉。
|
||||
> 連結寫法:報表頁那一條寫成 `[{頁名}]({絕對網址})`,網址取自 `jsc-gitea/tools/gitea.sh wiki-url`,不用 `[[...]]`。兩頁分屬不同存取庫,`[[...]]` 連不過去,畫面上還看不出壞掉。
|
||||
> 連結驗證:每個要寫進本頁的連結先交給 `jsc-gitea/tools/link-check.sh`,退出碼 0 才寫入。出現 DEAD 就不寫,把連不到的那幾筆回報給呼叫端。
|
||||
> 寫入語意:一列代表一個報表頁,也就是一個存取庫的一種期間。一律用 `jsc-gitea/tools/wiki-contents.sh upsert REPORT 2 {HASH} {列檔} {本範本}` 單列整頁寫回——它讀整頁、找得到該報表頁既有的那一列就換掉那一列,找不到才附加。
|
||||
> 鍵取第 2 欄的裸 HASH,不取第 1 欄的連結。第 1 欄的連結帶著主機名與頁名編碼,`GITEA_HOST` 一換或 Gitea 對頁名的編碼有差,連結就跟上一輪寫的不一樣,鍵比不到就走附加,同一個報表頁多出第二列,舊列從此不再更新。裸 HASH 不受這兩件事影響。
|
||||
> 但 `JSC_WIKI_REPO_REPORT` 改指別的存取庫是另一回事:HASH 本身就取自 REPORT wiki 存取庫,換庫等於換頁,四個期間會各多一列。那是換庫的本意,不是鍵失準,舊列請人工清掉。
|
||||
> 禁止整頁覆蓋,也不得改動別人的列。
|
||||
> 寫入語意:一個區塊代表一個報表頁,也就是一個存取庫的一種期間。一律用 `jsc-gitea/tools/wiki-contents.sh upsert REPORT 1 REPORT_{HASH} {區塊檔} {本範本}` 單一區塊整頁寫回——它讀整頁、找得到該報表頁既有的那個區塊就換掉,找不到才附加到頁尾。
|
||||
> 參數語意:`<key-col>` 的 `1` 只在舊頁還是表格時用得到,代表轉檔時取第 1 欄格子的文字當 H2 標題,格子是 `[文字](網址)` 就只取文字;頁面已經是條列格式就完全忽略它。`<key>` 是 H2 標題文字,也就是內容頁頁名 `REPORT_{HASH}`。第四個參數是區塊檔,內容是 `## {key}` 那一行加空行加各條欄位,不是一列表格。
|
||||
> 鍵是 H2 標題的頁名,不是連結。頁名只由 `{owner}/{repo}/{期間}` 決定,`GITEA_HOST` 一換或 Gitea 對頁名的編碼有差都動不到它;連結帶著主機名與頁名編碼,一變就跟上一輪寫的不一樣,拿它當鍵就比不到既有那一筆,走附加,同一個報表頁多出第二個區塊,舊區塊從此不再更新。
|
||||
> 但 `JSC_WIKI_REPO_REPORT` 改指別的存取庫是另一回事:`HASH` 本身就取自 REPORT wiki 存取庫,換庫等於換頁,四個期間會各多一個區塊。那是換庫的本意,不是鍵失準,舊區塊請人工清掉。
|
||||
> 禁止整頁覆蓋,也不得改動別人的區塊。
|
||||
|
||||
| 報表頁 | HASH | 期間 | 最新一期 | 期數 | 最後更新 |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| [REPORT_{HASH}]({報表頁絕對網址}) | {HASH} | {daily、weekly、monthly、yearly 四選一} | {最新一期的標籤} | {n} | {yyyy-MM-dd HH:mm} |
|
||||
## REPORT_{HASH}
|
||||
|
||||
- 報表頁:[REPORT_{HASH}]({報表頁絕對網址})
|
||||
- HASH:{HASH}
|
||||
- 期間:{daily、weekly、monthly、yearly 四選一}
|
||||
- 最新一期:{最新一期的標籤}
|
||||
- 期數:{n}
|
||||
- 最後更新:{yyyy-MM-dd HH:mm}
|
||||
|
||||
Reference in New Issue
Block a user