跳到內容

產品簡介與核心價值

EpoCanvas Docs 是專門為 EpoCanvas 開源生態打造的官方技術文件網站系統。它基於現代靜態網站框架 Astro 5 與 Starlight 建置,旨在為開發者提供一個排版專業、開啟速度快、搜尋順手、易於維護的文件平台。

無論是撰寫產品的使用手冊、API 介面規範,還是記錄系統架構設計,EpoCanvas Docs 都能讓撰寫者專注於寫好 Markdown 內容,同時為閱讀者提供舒適自然的瀏覽體驗。


解決的實際問題

在日常開發與技術寫作中,許多團隊在維護文件時常遇到以下困擾:

  1. 頁面開啟慢、記憶體佔用高:許多文件工具產生的頁面帶有大量 JavaScript 執行環境,在手機或弱網路環境下開啟慢,捲動長文章時容易卡頓。
  2. 長文章導覽費力:常見文件站通常只有左側選單,閱讀數千字的長篇技術說明時,難以快速掌握目前文章內部的小標題層級。
  3. 搜尋依賴外部服務:常見的 Algolia 等雲端搜尋服務需要額外申請帳號、設定爬蟲金鑰,在無法存取外部服務的內網環境中完全失效。
  4. 多語言只有半套:不少文件站宣稱支援多語言,實際上只有導覽按鈕翻了譯,點進文章內文還是原文;也有的譯文缺失時直接 404,讀者只能自己改 URL 找內容。

EpoCanvas Docs 正是為了解決這些實際痛點而設計的。


核心功能一覽

EpoCanvas Docs 產品簡介頁在瀏覽器中的實際渲染效果:左側分類目錄、中央內文、右側本頁目錄

圖:產品簡介頁的實際渲染效果。左側為文件分類目錄,中央為內文,右側為自動產生的「本頁目錄」大綱,隨捲動高亮目前小節。

1. 清晰的三欄式閱讀介面

  • 左側導覽欄:按模組組織所有文件分類,帶有層級摺疊,換頁不跳動。
  • 中央內文區:內文最大寬度 60rem,行距 1.68,程式碼區塊自適應寬度,長時間閱讀不易疲勞。
  • 右側大綱欄:自動擷取文章內的 h2 與 h3 標題產生「本頁目錄」,隨捲動高亮目前閱讀位置,點擊任意小標題平滑跳轉。

2. 雙模式搜尋:頁內尋找 + 全站搜尋

  • 目前頁尋找:直接在頂部搜尋框輸入關鍵字,頁面內所有符合的文字立即高亮,並顯示 3/9 這樣的進度計數,按 Enter 逐個跳轉。
  • 全站搜尋彈窗:按下 Ctrl + K(Mac 為 Cmd + K)開啟全域搜尋彈窗,基於 Pagefind 靜態索引列出所有命中的文件與段落預覽。
  • 全部搜尋能力都在瀏覽器本機完成,不依賴任何後端服務,託管在內網也能用。

3. 10 種語言的完整譯文

  • 支援簡體中文、繁體中文、英語、日語、韓語、西班牙語、法語、德語、俄語、葡萄牙語共 10 種語言,每種語言的導覽、側邊欄與全部文件內文都是完整翻譯。
  • 點擊右上角語言按鈕即可跳轉到同一篇文章的目標語言版本,URL 帶語言前綴(如 /en/canvas/),可直接加入書籤或分享給使用其他語言的同事。
  • 個別頁面暫缺某語言譯文時,該頁自動回退顯示預設中文內容,不會出現 404 錯誤。

4. 專業的 Markdown 與程式碼排版

  • 基於 Expressive Code 的程式碼高亮,支援為程式碼區塊標註檔名標題、高亮指定行、展示 diff 對比。
  • 原生支援 4 種彩色提示框(Note、Tip、Caution、Danger),並支援自訂標題。
  • 支援 GFM 表格、任務清單、刪除線等常用 Markdown 擴充語法,完整規則見渲染規則詳解。

5. 建置快、託管免費

  • 基於 Astro 5 靜態編譯,建置產物為純 HTML、CSS 與少量視需要載入的 JS,全站 10 種語言約 180 個頁面完整建置約 25 秒。
  • 預先內建 Cloudflare Pages 部署指令,一行指令即可將文件發布到線上,並自動取得 HTTPS 憑證。

專案整體架構

為了讓文件保持輕巧好維護,系統按職責劃分為四個部分:

EpoCanvas Docs 系統架構圖:Markdown 內容源經過 Astro 編譯,套用客製化介面元件,最終產生靜態頁面並託管到 Cloudflare Pages

圖:系統架構。撰寫者只需維護 Markdown 內容源,其餘環節全部自動完成。

  • 底座與樣式:基於 Astro 5 靜態核心,透過 src/styles/custom.css 定義設計變數,淺色與深色模式共用同一套變數名。
  • 內容源管理:所有文件儲存在 src/content/docs/ 目錄下,使用純 Markdown(.md)或可嵌入元件的 MDX(.mdx)撰寫。
  • 介面元件:透過覆蓋 Starlight 原生元件,客製化了頂欄、側邊欄、本頁目錄與搜尋彈窗。
  • 分發與存取:編譯產物儲存在 dist/ 目錄,託管在 Cloudflare Pages,由全球 CDN 節點就近回應。

適合誰用

EpoCanvas Docs 適合以下場景:

  • 開源專案的官方文件站:產品手冊、API 參考、架構說明,一個儲存庫全部搞定;
  • 團隊內部知識庫:純靜態、無外部服務依賴,放在內網也能完整使用搜尋;
  • 個人技術部落格式文件:只寫 Markdown,不用操心前端工程,一條指令發布。

它不適合需要登入驗證、留言互動、即時資料展示的場景——純靜態網站沒有後端,這類需求需要另行搭配服務。


常用文件工具比較

功能特性EpoCanvas DocsDocusaurusVitePressGitBook 商業版
底層技術Astro 5 + StarlightReact 18Vue 3 + Vite閉源 SaaS 平台
搜尋機制Pagefind 本機靜態索引依賴 Algolia 雲端服務Minisearch 記憶體搜尋自帶後端搜尋
佈局設計三欄(左選單 + 中內文 + 右目錄)需要設定外掛改造預設雙欄/三欄固定兩欄
部署方式Cloudflare Pages 直傳S3 / Vercel / GitHubGitHub Pages平台私有託管
自主可控度100% 開源,原始碼完全在手100% 開源100% 開源閉源,付費功能多

技術棧與版本

目前版本實際使用的技術棧(以建置產物為準):

元件版本作用
Astrov5.18.2靜態網站核心,負責建置與路由
Starlightv0.32.6文件站框架,提供版面骨架與內容處理
Expressive Code隨 Starlight 整合程式碼區塊高亮、標題欄、行高亮
Pagefind經 @pagefind/default-ui 1.5.2 整合建置期產生靜態搜尋索引
Wranglerv4.131.0Cloudflare 官方 CLI,執行部署
執行環境Node.js 18.20.8 / 20.3+ / 22+,pnpm 10本機開發與建置環境;執行 pnpm run deploy 時 wrangler 要求 Node.js 22 以上

升級相依套件時,請同步閱讀 介面元件與二次開發 中的回歸測試注意事項。


專案目錄結構

本專案的程式碼組織如下,各目錄分工明確:

epocanvas-docs/
├── public/ # 靜態資源目錄(圖片、向量圖示直接放這裡)
│ └── images/canvas/ # 介面截圖與系統架構向量圖
├── src/
│ ├── components/starlight/ # 客製化的頁面元件(頂欄、側邊欄、本頁目錄、搜尋彈窗等)
│ ├── config/navigation.ts # 頂部導覽欄設定(增刪選單項目改這裡)
│ ├── content/docs/ # 文件內文 Markdown 檔案存放位置
│ │ ├── index.mdx # 文件站首頁落地頁
│ │ ├── canvas/ # 各章節文件(簡體中文,預設語言)
│ │ └── en/ ja/ ... # 其他 9 種語言的完整譯文目錄
│ ├── styles/custom.css # 全域樣式與主題顏色變數
│ ├── utils/i18n.ts # 介面詞條字典與語言清單
│ └── pages/404.astro # 自訂 404 頁(依瀏覽器語言輸出提示文字)
├── scripts/ # 建置前快取失效、i18n/圖片/錨點覆核與截圖腳本
├── astro.config.mjs # 站點主設定檔(標題、語言清單、側邊欄目錄在這裡設定)
└── package.json # 專案相依套件與執行指令設定

下一步