跳到內容

渲染規則詳解

本頁完整說明 EpoCanvas Docs 的渲染規則:一篇 Markdown 檔案經歷了哪些處理環節、每種語法會被渲染成什麼效果、哪些語法不被支援。寫文件前通讀一遍,可以避免絕大多數排版問題。


渲染管線:從 .md 檔案到線上頁面

EpoCanvas Docs Markdown 渲染流水線示意圖:展示從 Markdown 原始碼掃描、GFM AST 解析、程式碼高亮、7 個客製化元件佈局裝配到靜態 HTML 與 Pagefind 索引產生的完整 5 步流程

圖:Markdown 渲染管線 5 步流程。各步驟在建置期按順序執行,建置產物為純靜態檔案,用戶端零執行時框架開銷。

一篇 Markdown 檔案從儲存到被讀者看到,經過以下五個環節:

  1. 內容收集:Astro 啟動或建置時掃描 src/content/docs/ 目錄,把每個 .md / .mdx 檔案登記為內容條目,並校驗 Frontmatter(缺少 title 會直接報錯)。
  2. Markdown 編譯:內文由 Markdown 編譯器(含 GFM 擴充)轉換為 HTML。表格、任務清單、刪除線等擴充語法在這一步生效。
  3. 程式碼區塊高亮:所有程式碼圍欄交給 Expressive Code 處理,產生帶語法高亮、標題欄、行號與複製按鈕的程式碼區塊。
  4. 套用網站佈局:編譯後的 HTML 被塞進 Starlight 的頁面骨架——頂欄、左側目錄、右側本頁目錄都由 src/components/starlight/ 下的客製化元件渲染。
  5. 產生索引與靜態檔案:pnpm run build 時 Pagefind 走訪所有產物頁面擷取全文索引;最終 dist/ 目錄中的純 HTML 可直接託管到任何靜態伺服器。

Frontmatter 規則

  • title 必填,缺失時建置報錯 InvalidInputError;
  • description 建議填寫,會展示在搜尋引擎結果與分享卡片中;
  • Frontmatter 必須是檔案最開頭的合法 YAML 區塊,三個橫線缺一不可。

標題規則

規則說明
內文不要寫一級標題 #Frontmatter 的 title 已渲染為頁面大標題,內文再寫 # 會出現兩個大標題
二級標題 ## 開始內文## 與 ### 自動進入右側「本頁目錄」
#### 及以下不進目錄更深層級僅作內文樣式渲染
標題文字會產生錨點中文標題的錨點即中文文字本身,如 #標題規則

提示框規則 (Asides)

提示框使用 Starlight 的三冒號語法,支援 4 種類型:

:::note
補充說明類的提示。
:::
:::tip
提高效率的小技巧。
:::
:::caution
需要注意的風險或容易出錯的操作。
:::
:::danger
涉及資料遺失或不可逆操作的高風險提醒。
:::

還可以在類型後加自訂標題::::tip[安裝提速]。

四種彩色提示框的真實渲染效果

圖:四種提示框按上述語法書寫後的實際顯示效果,截取自提示框、程式碼區塊與圖表範例頁。


程式碼區塊規則

程式碼圍欄(三個反引號)由 Expressive Code 渲染,支援以下標註(寫在首行反引號後):

標註寫法作用範例
語言標示決定語法高亮方案```ts
title="..."顯示檔案名標題欄```ts title=“src/config/site.ts”
{2} / {2-4}高亮指定行```ts {2}
lang="diff" 或 diff紅綠對比展示增刪行```diff
bash / sh 等終端語言渲染為終端風格邊框```bash

所有程式碼區塊自動附帶一鍵複製按鈕;程式碼文字會被 Pagefind 收錄進搜尋索引,讀者可以直接搜到程式碼裡的關鍵字。


圖片規則

  • 圖片統一放在 public/images/canvas/,用絕對路徑引用:![說明](/images/canvas/ui-docs-reading.png);
  • 架構與流程示意圖用 .svg 向量格式,介面截圖用壓縮後的 .png;
  • 描述文字必須填寫,這是圖片載入失敗時的替代文字,也是無障礙存取的依據;
  • 目前版本不內建 Mermaid 圖表渲染:```mermaid 圍欄只會按普通程式碼區塊顯示原始碼。需要流程圖時,先在 mermaid.live 等工具中匯出 SVG,再作為圖片插入。

連結規則

  • 站內連結:使用完整路徑並以 / 開頭結尾,如 /canvas/deployment/。文件路徑改動後,舊路徑要在 astro.config.mjs 的 redirects 表登記跳轉;
  • 錨點連結:/canvas/rendering/#程式碼區塊規則 可以直接定位到本頁小節;
  • 外部連結:寫完整 URL 即可,內文中會以主題色呈現。

其他渲染行為

語法渲染結果
**粗體**、*斜體*、~~刪除線~~對應的文字樣式
行內程式碼主題色等寬字體膠囊
Ctrl+K 寫法鍵帽樣式的按鍵標示
GFM 表格帶邊框與懸停高亮的資料表格
- [x] 任務清單視覺化勾選框(停用狀態)
[^名稱] 腳註內文上標序號 + 頁面底部腳註列表,支援點擊往返跳轉
Markdown 引用區塊 >左側主題色垂直線 + 淺色底
分隔線 ---貫通內文區的細分割線