fix(wiki 連結): 方向修正與跨存取庫改用絕對網址(升版 0.0.6) #9
1 Participants
Notifications
Due Date
No due date set.
Depends on
#13 fix(wiki 連結): 方向修正與跨存取庫改用絕對網址(升版 0.0.8)
plugins/gitea
Reference: plugins/log#9
Reference in New Issue
Block a user
問題
wiki 頁之間的連結有兩個獨立的錯誤,兩個都會產生「看起來正常、點下去是空頁」的連結。
一、方向寫反(10 處)
Gitea 用 GitHub/Gollum 慣例
[[顯示文字|頁名]]——顯示文字在左、頁名在右,與 MediaWiki 相反。原始碼modules/markup/html_link.go的註解直說了:樣板寫的是
[[PLAN_{HASH}|{計畫名稱}]],實際渲染成「顯示PLAN_H…、連到一個叫做『計畫名稱』的頁」。二、跨存取庫連結不可能用
[[...]](8 處)wiki/SKILL.md明訂「不同頁型可以落在不同{owner}/{repo}」,每個頁型各自解析JSC_WIKI_REPO_{TYPE}。而[[頁名]]與 markdown 相對連結都只在當前 wiki 內解析,Gitea 沒有跨存取庫的 wiki 連結語法。所以LOG_{HASH}連到PLAN_{HASH}這種跨頁型連結,一旦兩個頁型設在不同存取庫就斷掉。修法
分三類處理:
wiki-url子指令取得TICKET_…不是 wiki 頁型(是 session 名稱),改成行內程式碼,不再假裝是連結新增
gitea.sh wiki-url <owner>/<repo> <page>:從 API 回應的html_url取絕對網址,不自行組路徑。modules/structs/repo_wiki.go的WikiPageMetaData確認有這個欄位:wiki/SKILL.md新增「Linking between wiki pages」一節,把方向與作用範圍兩條規則寫死,附上判斷表(同頁型可用[[...]],跨頁型一律絕對網址,不要依「這次剛好同庫」來分支)。注意事項
[[PLAN_H…]],方向不可能寫錯。{PLAN 頁絕對網址}這類佔位符由 skill 在寫頁時以wiki-url的輸出填入。/markup與/markdown渲染 API 都回空回應,plugins/*也還沒建 wiki,所以上述結論是原始碼與 schema 級證據,不是實際渲染驗證。第一次真的寫 wiki 頁時值得順手確認一次。