这一期进入 Markdown 的“高级扩展区”——这些语法不是 CommonMark 核心,但被广泛使用,尤其在 Pandoc、Obsidian、GitHub 部分场景、静态站点生成器(如 VitePress、MkDocs)中。
我们聚焦 footnotes(脚注)、definition lists(定义列表)、emoji、autolinks(自动链接),以及 HTML 嵌入 的实战技巧。
所有示例在 2026 年主流渲染器(GitHub、VS Code + extensions、Obsidian、VitePress)实测过,标注兼容性。
一、Footnotes(脚注)——学术/长文神器
语法(Pandoc / MultiMarkdown / Obsidian / 部分 GFM 扩展支持,GitHub 自 2021 年起原生支持)
这里有一个脚注引用[^1],还有另一个[^note]。
[^1]: 这是第一个脚注定义。可以写多行。
第二行缩进 4 空格。
[^note]: 脚注标签可以是任意字符串(不一定是数字)。
支持 **粗体**、*斜体*、[链接](https://example.com) 等内联。
渲染效果(支持平台显示上标链接 + 底部定义): 这里有一个脚注引用1,还有另一个2。
兼容性 & 技巧:
- GitHub / GitHub Discussions / Obsidian → 原生支持(2021 年引入)
- VitePress / Docusaurus → 需 remark-footnotes 插件
- VS Code → 用 Markdown Footnotes 扩展预览
- 脚注定义放文档末尾或靠近引用处均可(推荐文档末尾统一管理)
- 常见坑:标签必须唯一;定义前需空行;不支持嵌套脚注引用(部分平台允许但不推荐)
实战建议:写技术博客、论文摘要、长 README 时用脚注放参考文献/补充说明,避免正文太拥挤。
二、Definition Lists(定义列表)——术语解释利器
语法(Pandoc / PHP Markdown Extra / MultiMarkdown 支持,GFM 原生不支持)
术语一
: 这是定义。可以多行,缩进 4 空格或 Tab。
术语二(支持 *内联* 标记)
: 定义内容第一段
第二段(继续缩进)。
另一个术语 ~ 也可以用波浪号开头(Pandoc 支持)
: 定义...
渲染效果(Pandoc / Obsidian 转 HTML 为
- ):
术语一
: 这是定义。可以多行,缩进 4 空格或 Tab。
术语二(支持 内联 标记) : 定义内容第一段
第二段(继续缩进)。另一个术语 ~ 也可以用波浪号开头(Pandoc 支持) : 定义...
兼容性:
- GitHub / GFM → 不支持(渲染成普通段落 + blockquote)
- Obsidian / Typora → 支持(插件或内置)
- Pandoc / MkDocs → 原生优秀
- 替代方案:在 GitHub 用表格或无序列表 + 粗体 hack
常见坑:
- 定义必须以
:或~开头,后跟至少一个空格 - 术语一行,定义可多段(段落缩进与 : 对齐)
- 多定义项:每个 : 独立一行
实战建议:写 API 文档、术语表、配置参数说明时首选(Pandoc 转 PDF/Word 时完美保留
- 结构)。
- GitHub 有完整 emoji cheat sheet(搜索 “github emoji”)
- 用在标题、列表开头、alerts 里提升可读性
- 避免滥用(过多 emoji 会让专业文档显得不严肃)
- GitHub 允许基本 HTML(如
<div>、<span>、<img>、<a>),但禁用 script、style(防 XSS) - 用 class 而非 inline style:
<div class="custom-card">+ 外部 CSS - 嵌入视频/音频:用 或 ,但 GitHub Pages 可能有 CSP 限制
- 常见 hack:
- 多栏布局:
<div style="display: flex;"> <div>左</div> <div>右</div> </div> - 图片 caption:
<figure><img src="..."><figcaption>说明</figcaption></figure>
- 多栏布局:
- 安全:永远不要嵌入用户输入的 HTML(XSS 风险);GitHub 会自动净化危险标签
- Footnotes:[^label] + [^label]: 定义,支持多行
- Definition lists:术语: 定义(Pandoc/Obsidian 首选)
- Emoji::smile: 或 Unicode 😄
- Autolinks:裸 URL 或
- HTML 嵌入:用
<div>/<span>补 Markdown 不足,但注意平台限制 & 安全
三、Emoji —— 视觉调味剂
语法(GFM / CommonMark 扩展,几乎全平台支持)
:smile: :+1: :rocket: :octocat: :heart: 也可以直接用 Unicode:😄👍🚀渲染效果: :smile: :+1: :rocket: :octocat: :heart:
也可以直接用 Unicode:😄👍🚀
兼容性:GitHub、VS Code、Obsidian、Discord、Slack → 全支持 shortcode(如 :smile:)和 Unicode
技巧:四、Autolinks(自动链接)——懒人福利
语法(CommonMark + GFM 扩展)
直接写 URL 就会自动链接:https://example.com 或 email:user@example.com 严格 autolink 用尖括号:<https://example.com/path?query=1>渲染效果: 直接写 URL 就会自动链接:example.com
或 email:user@example.com
严格 autolink 用尖括号:example.com/path?query=…
兼容性:几乎所有现代 Markdown 渲染器支持(GFM 自动识别裸 URL / email)
坑:如果 URL 里有 Markdown 字符(如 _ 或 *),可能被误解析 → 用 < > 包裹强制 autolink。实战建议:写 README 时直接贴链接最省事,但生产环境建议用 显示文本 更美观。
五、HTML 嵌入技巧 —— 当 Markdown 不够用时
语法:直接写 HTML 标签,Markdown 解析器通常会原样通过。
<div style="background: #f0f0f0; padding: 1em; border-radius: 8px;"> <p>这是一个自定义卡片,支持 <strong>内联 Markdown</strong>。</p> </div> <iframe width="560" height="315" src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allowfullscreen></iframe> <span style="color: red;">红色警告文本</span>渲染效果(支持 HTML 的平台):
这是一个自定义卡片,支持 内联 Markdown。
(iframe 示例会嵌入视频,但 GitHub 限制部分嵌入)
最佳实践 & 安全注意(2026 年视角):
小技巧:VS Code 用 Markdown Preview Enhanced 插件实时预览 HTML + Markdown 混合。
总结 Checklist(高级扩展速查)
Footnotes