D-20260716-02|公開根入口與靜態多語公告¶
2026-08-16 關聯追補:公告來源目錄已由 D-20260816-11 修訂為
public/assets/announcements/<id>/;靜態多語、封閉 block schema 與 git PR 信任模型不變。
背景與驅動力¶
根路徑原承載遊戲工作台、讀個人資料(IndexedDB/ 車庫 / 餘額 / 聲望),無法 SSG/SEO,公開第一眼被個人資料邊界綁死;公告則需要不依賴中心服務的發布通道。
考慮過的選項¶
- 工作台續留根路徑:公開首頁與個人資料綁死、不可 SSG——否決,工作台移路由。
- 公告走中心 CMS:否決,採 repo 內靜態多語內容。
- 公告內容接受任意 HTML:否決,採封閉 block schema。
決定¶
- 根路徑
/= 不讀個人 IndexedDB/ 車庫 / 餘額 / 聲望的公開統一入口:遊戲定位、唯一「開始遊戲」CTA、公告摘要、規範 / 貢獻 / 安全入口,可 SSG/SEO;工作台移/home(Race Bench);登入狀態只改 CTA 目的地、不改公開首頁資料邊界;一般導覽共用同一結構,僅 race/watch 沉浸路由例外。 - 公告 =repo 內靜態多語:
public/announcements/<yyyyMMddNN>/由 manifest+ 四語 JSON+ 同資料夾資產組成;封閉 block schema、不接受任意 HTML,圖片與附件由 blocks 引用;標題 / 摘要 / 內容留各語 JSON、單一分類走共用 i18n、tags 用各語 registry;published/retracted 四語缺一即 build fail。 - generator 驗 schema、時間、排序、取代 / 撤回 DAG、路徑、MIME/magic bytes、SVG 安全、尺寸與總量,再產 catalog、SSG、sitemap 與 bounded SW cache;未公開或機密草稿不得進
public/;無公告時首頁保留公告區塊、不捏造內容。
後果與影響¶
公開面與個人面資料邊界一刀切,SSG/SEO 與隱私立場同時成立;公告發布沿 git PR 信任模型、零中心 CMS 依賴。細節權威見 公告系統.md 與 程式架構/announcements.md。