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 / 大多数平台):
| 左对齐 | 居中 | 右对齐 |
|---|---|---|
| L | C | R |
| foo | bar | baz |
高级技巧 & 变体
- 对齐:
:放左/右/两边控制对齐(默认左对齐) - 无表头:第一行可以是
|---|开头(但 GitHub 仍会渲染表头为空) - 跨列/跨行:GFM 原生不支持,需要 HTML
<td colspan="2">hack(兼容性好,但不纯 Markdown) - 在列表里嵌套表格:表格前后空行 + 缩进 4 空格(或用 HTML)
常见坑
| 错误写法 | 为什么崩? | 正确写法 | 说明 | |
|---|---|---|---|---|
| 列数不一致(某行少一列) | 渲染失败或错位 | 每行必须等列数(用 ` | ` 补齐) | 严格要求 |
表头分隔线只有 1 个 - | 很多渲染器不认(视为普通线) | 至少 3 个 -(推荐) | GitHub 要求 ≥3 | |
| 表格前后没空行 | 与上方文本粘连 | 前后各空一行 | 最佳实践 | |
| 单元格里有 ` | ` | 破坏列结构 | 转义 | 或用 HTML | — |
小技巧:VS Code 用 Markdown Table 插件或 Markdown All in One 的 Ctrl+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])
常见坑:
- 必须大写
NOTE、TIP等(小写不渲染) - 内容可多段:后续行用 > 缩进
- 不要连续多个 alerts(GitHub 建议限 1–2 个/文章)
- 不能嵌套 alerts(官方不支持)
小技巧:写 README 时用 NOTE/TIP 突出关键点,用 WARNING/CAUTION 警告潜在问题,视觉冲击力翻倍。
总结 Checklist(GFM 四大扩展速查)
- Tables:
|+---分隔,列数一致,对齐用: - Task lists:
- [ ]/- [x],空格严格 - Strikethrough:统一
~~text~~ - Alerts:
> [!TYPE]开头,类型全大写,支持 5 种 - 跨平台测试:写完后去 GitHub 预览确认