Chapter 07 / 10

表格

GFM 表格语法、列对齐、格式化技巧与复杂表格处理

基本表格语法

GFM(GitHub Flavored Markdown)表格语法:用 | 分隔单元格,用 - 分隔表头与正文:

源码
| 语言    | 出现年份 | 主要用途 |
| ------- | -------- | -------- |
| Python  | 1991     | AI / 数据科学 |
| JavaScript | 1995  | Web 前端 |
| Go      | 2009     | 后端服务 |
| Rust    | 2015     | 系统编程 |
渲染效果
语言出现年份主要用途
Python1991AI / 数据科学
JavaScript1995Web 前端
Go2009后端服务
Rust2015系统编程
INFO表格是 GFM 扩展语法,CommonMark 不支持。在 GitHub、GitLab、VS Code 等环境中可以正常渲染,但在只支持 CommonMark 的环境中会显示为原始文本。

列对齐

在分隔行(---)中使用冒号控制对齐方式:

源码
| 左对齐  | 居中    | 右对齐  |
| :------ | :-----: | ------: |
| 左      | 中      | 右      |
| 苹果    | 香蕉    | 橙子    |
渲染效果
左对齐 居中 右对齐
苹果 香蕉 橙子
语法对齐方式
:---左对齐(默认)
:---:居中对齐
---:右对齐
---默认对齐(通常为左)

表格中使用格式化

表格单元格内可以使用内联 Markdown 格式:

| 功能       | 状态              | 备注              |
| ---------- | :---------------: | ----------------- |
| 登录       | ✅ 已完成         | 支持 OAuth        |
| 注册       | 🚧 进行中         | **需要验证邮箱**  |
| 忘记密码   | ❌ 未开始         | `POST /api/reset` |
功能状态备注
登录✅ 已完成支持 OAuth
注册🚧 进行中需要验证邮箱
忘记密码❌ 未开始POST /api/reset

表格格式化技巧

不需要对齐管道符

管道符不需要严格对齐,但对齐后可读性更好:

# 不对齐(有效)
| 名称 | 年龄 | 城市 |
|---|---|---|
| 张三 | 25 | 北京 |

# 对齐(更可读)
| 名称 | 年龄 | 城市 |
| ---- | ---- | ---- |
| 张三 |   25 | 北京 |

表格中的竖线

如果单元格内容包含 |,需要转义:

| 表达式     | 含义           |
| ---------- | -------------- |
| `a \| b`   | 逻辑或         |
| `a && b`  | 逻辑与         |

表格工具

手动对齐表格列比较繁琐,推荐使用工具:

工具说明
VS Code: Markdown All in OneAlt+Shift+F 格式化表格
Tables Generator在线生成 Markdown 表格
Prettier自动格式化 Markdown(含表格)

复杂表格的替代方案

原生 Markdown 表格不支持合并单元格、跨列/行。遇到复杂需求时:

TIP对于需要合并单元格或复杂布局的表格,直接使用 HTML <table> 标签。Markdown 中可以直接内嵌 HTML,在大多数渲染器中都能正常显示。
<table>
  <thead>
    <tr><th colspan="2">合并列标题</th></tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="2">合并行</td>
      <td>内容1</td>
    </tr>
    <tr><td>内容2</td></tr>
  </tbody>
</table>

小结