跳轉到

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