Files
log/templates/report-contents.md
jiantw83 369b327a4f feat(report): 報表目錄頁改成一個報表頁一個大標題區塊
報表目錄頁的版面從 markdown 表格換成「大標題加條列」:一個報表頁一個大標題
區塊,也就是一個存取庫的一種期間一個區塊,標題就是那個報表頁的實際頁名,
期間、最新一期、期數這些欄位改成標題底下的一層條列。範本與 report 技能的
寫入敘述與退出碼說明一起跟上。

表格的欄位組合是整頁共用的,一頁上卻有很多報表頁各自的紀錄,每一輪只重寫
自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋——
覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己
那一個區塊。

比對鍵從裸雜湊那一格改成大標題本身,標題寫成報表頁的實際頁名。頁名只由
存取庫的擁有者、名稱與期間決定,換主機位址或頁名編碼有差都動不到它;含
網址的那一條連結照樣留著給人點,但不當鍵。把報表存取庫改指別的庫是另一回
事:雜湊本身就取自那個庫,換庫等於換頁,四種期間會各多一個區塊,那是換庫
的本意,不是鍵失準,舊區塊請人工清掉。

範圍是工作報表的目錄頁與 report 技能。
2026-09-02 17:22:33 +08:00

21 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 報表目錄
> 由 `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/link-check.sh`,退出碼 0 才寫入。出現 DEAD 就不寫,把連不到的那幾筆回報給呼叫端。
> 寫入語意:一個區塊代表一個報表頁,也就是一個存取庫的一種期間。一律用 `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 存取庫,換庫等於換頁,四個期間會各多一個區塊。那是換庫的本意,不是鍵失準,舊區塊請人工清掉。
> 禁止整頁覆蓋,也不得改動別人的區塊。
## REPORT_{HASH}
- 報表頁:[REPORT_{HASH}]({報表頁絕對網址})
- HASH:{HASH}
- 期間:{daily、weekly、monthly、yearly 四選一}
- 最新一期:{最新一期的標籤}
- 期數:{n}
- 最後更新:{yyyy-MM-dd HH:mm}