一句話:內容編輯的 SSOT——後台 MDX 編輯器、public MDX 渲染、journal CRUD、tour 內容元件,以及 consent 內容的共用渲染。狀態看 roadmap,精確路徑看 code。
content_mdx,需要查詢的營運資料才進 schema。<CancellationPolicy /> 引用最新有效版本。後台編輯器是 client island:
前台渲染管線:
Tour detail 支援下列 MDX 元件:
| 元件 | 用途 |
|---|---|
Highlight | 圖文亮點段。 |
Itinerary / Day | day-by-day 行程。 |
Difficulty | 體能、技術、負重、海拔等級。 |
Includes | 團費包含 / 不包含。 |
CancellationPolicy | 讀取最新退改 / 同意模板。 |
這些元件是內容呈現,不是價格或營運資料來源。付款、訂金、團費包含的財務語意仍看 trip-pricing 與 order-money-model。
/admin/journal 是跨梯次內容管理,允許獨立 sidebar nav。
Journal 支援:
/journal/[slug] 只顯示已發布且到達 published_at 的文章。權限應有獨立 content / journal resource;若 code 暫沿用其他讀權限,roadmap 應追技術債,不在本檔把 workaround 寫成設計。
/admin/images)後台圖片資料庫,跨行程集中檢視 / 管理所有 trip 圖片(列表 + 行程 / 關鍵字 filter + 新增 / 刪除),權限閘 image.read(寫入 image.manage)。新增圖片支援檔案上傳與 URL 貼法並存:上傳走物件儲存 provider(local / GCS,packages/core/src/storage/),單檔上限+MIME magic-byte 白名單,object prefix 綁 physical db_name。實作在 src/app/(admin)/admin/images/page.tsx、repo packages/core/src/images/admin-repo.ts。共用快速圖片選擇器見 店面模板 §4;MDX 編輯器插圖已接入該 picker(URL 手貼保留為 fallback)。