報表目錄頁的版面從 markdown 表格換成「大標題加條列」:一個報表頁一個大標題 區塊,也就是一個存取庫的一種期間一個區塊,標題就是那個報表頁的實際頁名, 期間、最新一期、期數這些欄位改成標題底下的一層條列。範本與 report 技能的 寫入敘述與退出碼說明一起跟上。 表格的欄位組合是整頁共用的,一頁上卻有很多報表頁各自的紀錄,每一輪只重寫 自己那一列。欄位一增減,舊列的格數與表頭就對不上,而目錄頁不能整頁覆蓋—— 覆蓋等於刪掉別人的紀錄。條列一筆一個區塊,欄位各自獨立,加一條只動到自己 那一個區塊。 比對鍵從裸雜湊那一格改成大標題本身,標題寫成報表頁的實際頁名。頁名只由 存取庫的擁有者、名稱與期間決定,換主機位址或頁名編碼有差都動不到它;含 網址的那一條連結照樣留著給人點,但不當鍵。把報表存取庫改指別的庫是另一回 事:雜湊本身就取自那個庫,換庫等於換頁,四種期間會各多一個區塊,那是換庫 的本意,不是鍵失準,舊區塊請人工清掉。 範圍是工作報表的目錄頁與 report 技能。
2.4 KiB
報表目錄
由
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}