跳转到内容

渲染规则详解

本页完整说明 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 引用块 >左侧主题色竖线 + 浅色底
分隔线 ---贯通正文区的细分割线