GitHub Flavored Markdown (GFM) 终极掌握

3 阅读4分钟

GFM(GitHub Flavored Markdown)是 2026 年最主流的 Markdown 方言,几乎所有开发者每天都在用它写 README、issue、PR、wiki、博客。
它在 CommonMark 基础上加了几个杀手级扩展:tables(表格)、task lists(任务列表)、strikethrough(删除线),以及后来引入的 alerts/callouts(警告/提示块,也叫 admonitions)。

这一期我们把这四个 GFM 核心扩展拆解透彻:语法、渲染效果、常见坑、跨平台兼容性 + 实用技巧。所有示例已在 GitHub、VS Code、Obsidian、VitePress 2026 年最新版实测通过。

一、Tables(表格)—— GFM 最实用的扩展

基本语法
| 分隔列,- 做表头分隔线。第一行是表头。

| 左对齐 | 居中 | 右对齐 |
| :----- | :--: | -----: |
| L      |  C   |     R  |
| foo    | bar  |   baz  |

渲染效果(GitHub / 大多数平台):

左对齐居中右对齐
LCR
foobarbaz

高级技巧 & 变体

  • 对齐: 放左/右/两边控制对齐(默认左对齐)
  • 无表头:第一行可以是 |---| 开头(但 GitHub 仍会渲染表头为空)
  • 跨列/跨行:GFM 原生不支持,需要 HTML <td colspan="2"> hack(兼容性好,但不纯 Markdown)
  • 在列表里嵌套表格:表格前后空行 + 缩进 4 空格(或用 HTML)

常见坑

错误写法为什么崩?正确写法说明
列数不一致(某行少一列)渲染失败或错位每行必须等列数(用 `` 补齐)严格要求
表头分隔线只有 1 个 -很多渲染器不认(视为普通线)至少 3 个 -(推荐)GitHub 要求 ≥3
表格前后没空行与上方文本粘连前后各空一行最佳实践
单元格里有 ``破坏列结构转义 | 或用 HTML

小技巧:VS Code 用 Markdown Table 插件或 Markdown All in OneCtrl+Shift+I 一键格式化表格。

二、Task Lists(任务列表)——交互式 To-Do

语法
普通无序列表 + - [ ]- [x]

- [ ] 未完成任务
- [x] 已完成任务
- [ ] 支持 **加粗**、@提及、#123 引用

渲染效果(GitHub 支持点击勾选):

  • 未完成任务
  • 已完成任务
  • 支持 加粗、@提及、#123 引用

兼容性

  • GitHub / GitLab / Obsidian / Notion → 可交互勾选
  • 纯静态站点(如 VitePress)→ 只显示 checkbox,不交互

常见坑

  • 空格位置错误:必须是 - [ ] (空格在 ] 后)
  • 嵌套任务列表:缩进 4 空格,同普通列表

三、Strikethrough(删除线)——快速标记废弃内容

语法
~~ 包裹(双波浪号),或单 ~(部分平台支持,但推荐双)

~~这是错误的旧信息~~  
~单波浪号在 GitHub 也有效,但不推荐~

渲染效果这是错误的旧信息
单波浪号在 GitHub 也有效,但不推荐

  • ~ 在严格 CommonMark 里无效 → 统一用 ~~
  • 不能嵌套其他强调:~~**bold**~~ 会渲染成 bold(部分平台支持嵌套)

四、Alerts / Callouts(警告块 / 提示块)——2023–2026 年新宠

语法(GitHub 官方标准,基于 blockquote)

> [!NOTE]
> 突出显示用户即使快速浏览也应注意的信息。

> [!TIP]
> 可选提示,有助于用户更好地使用。

> [!IMPORTANT]
> 关键信息,用户必须知晓。

> [!WARNING]
> 负面后果的潜在警告。

> [!CAUTION]
> 危险动作的强烈警告。

渲染效果(GitHub 2026 年样式:带图标 + 彩色背景):

[!NOTE]
突出显示用户即使快速浏览也应注意的信息。

[!TIP]
可选提示,有助于用户更好地使用。

[!IMPORTANT]
关键信息,用户必须知晓。

[!WARNING]
负面后果的潜在警告。

[!CAUTION]
危险动作的强烈警告。

支持的类型(2026 年 GitHub 官方 5 种):

  • NOTE(蓝色)
  • TIP(绿色)
  • IMPORTANT(橙色)
  • WARNING(黄色)
  • CAUTION(红色)

兼容性 & 扩展

  • GitHub / GitHub Discussions / 部分静态站点(VitePress、Docusaurus 用插件支持)
  • Obsidian / MkDocs / Hugo 等:需插件(如 markdown-callouts、rehype-github-alerts)
  • 旧平台不认 → 降级成普通 blockquote(> [!NOTE] 变成 > [!NOTE])

常见坑

  • 必须大写 NOTETIP 等(小写不渲染)
  • 内容可多段:后续行用 > 缩进
  • 不要连续多个 alerts(GitHub 建议限 1–2 个/文章)
  • 不能嵌套 alerts(官方不支持)

小技巧:写 README 时用 NOTE/TIP 突出关键点,用 WARNING/CAUTION 警告潜在问题,视觉冲击力翻倍。

总结 Checklist(GFM 四大扩展速查)

  • Tables:| + --- 分隔,列数一致,对齐用 :
  • Task lists:- [ ] / - [x],空格严格
  • Strikethrough:统一 ~~text~~
  • Alerts:> [!TYPE] 开头,类型全大写,支持 5 种
  • 跨平台测试:写完后去 GitHub 预览确认