docs-site — 說明中心(docs.dolyu.com)
改這個目錄下任何東西之前,先讀 docs/HELP-DOCS-SCREENSHOT-RUNBOOK.md(截圖與圖文文章的 SOP),什麼時候要改文件見 .claude/skills/docs-site-sync/SKILL.md。
必守規則(細節都在 runbook):
- 三語同步:
help/(zh_TW)、en/help/、ja/help/同 slug、同{#anchor}、同<Shot id>、同((n))數量。改一語就要改三語。 - 截圖不手做:一律用
src/e2e/scripts/take-help-screenshots.ts產生(三語、編號框、示範資料在地化都是腳本做的)。不要手動截圖、不要編輯 webp、不要手改.vitepress/data/screenshots.json。新增或修改截圖照 runbook §3。 ((n))必須對上截圖上的號碼;截圖的編號改了,引用它的文章三語同一個 commit 一起改。- 介面文字
[[…]]要和各語系介面完全一致:用scripts/lookup-ui-label.sh "中文介面字"查 en/ja,不要自己翻。 - 後台「查看說明」深連的錨點不能改名或刪除(清單在
scripts/check-help-docs.py的REQUIRED_ANCHORS)。 - 文章結構照既有文章:
::: summary→:::: steps(###步驟 +<Shot>)→ 規則表 →::: details常見問題 → 疑難排解 → 相關文章。範本:help/getting-started/add-services-pricing.md。 - 完成前:
python3 scripts/check-help-docs.py(repo 根目錄)→docker exec dolyu-docs-preview sh -c "cd /app && npx vitepress build"→docker restart dolyu-docs-preview→ 在 https://docs.dolyu.localhost/ 目視(桌機、手機、深色)。 - 視覺風格:克制的 SaaS 文件風+「留白卡片」版面(2026-09-27 使用者從三個提案中選定方向 A,步驟改用提案 B 的雙欄;提案畫布 https://claude.ai/artifact/J89ES1TN7qnGHFAFQ3wuiH)。規則:
- 底色沿用官網首頁 hero 的米白 canvas(
#f7f6f3),內容區塊是放在米白上的白色卡片(--dolyu-surface),白卡裡再分層用--dolyu-inset;不要用冷灰底(使用者 2026-09-27 否決)。灰階用官網 primary 暖灰。 - 不畫分隔線:分組一律用留白與白色卡片;列表、常見問題、導覽列、頁尾都不加框線或底線(使用者評「線條太多像報價單」)。唯一例外是表格:完整格線(外框+橫線+直線)、表頭粗體、不上底色(使用者 2026-09-27「表格沒框線 UI 很差」)。
- 不用陰影:卡片、截圖、搜尋框、彈窗都不加 box-shadow(使用者 2026-09-27),層次只靠白卡與米白底的色差。
- 文章頁沒有左側欄:回文章清單靠標題上方的「← 所有文章」膠囊(
HelpArticleHeader.vue);右側本頁內容只列 h2。 - 步驟是雙欄:左欄「步驟 N」+標題+說明,右欄是這一步的
<Shot>;沒有截圖的步驟右欄放說明;手機依序直排。拆欄由markdown/help-syntax.ts的wrapSteps自動做,文章照舊寫###+說明+<Shot>就好。「誰可以操作」自動縮成一顆膠囊。 - 導覽列:logo 左邊,右邊依序是搜尋、官網、登入後台、語言、外觀。搜尋是自製的(
theme/components/HelpSearch.vue+theme/search/,索引在建置時從文章自動產生,結果只列文章標題+命中的段落或常見問題一行),不要改回 VitePress 內建搜尋;要調的只有熱門搜尋字POPULAR_SEARCHES。 - 首頁:置中搜尋、白色卡片(常用任務、依主題瀏覽、聯絡我們),內容全部來自
.vitepress/data/articles.ts(TASKS、POPULAR_SEARCHES、CATEGORIES/ARTICLES)——改首頁內容改那份資料,不要改元件。 - 色彩:不用官網的暖色強調色(磚紅/陶土)、不用襯線標題;只改
.vitepress/theme/custom.css檔頭的角色變數,help.css 與元件只引用變數;唯一例外是截圖編號橘色--dolyu-mark(要和截圖上的框同色)。
- 底色沿用官網首頁 hero 的米白 canvas(