MDUtil

Markdown 脚注

在需要注释的位置写 [^1],在下面任意位置写 [^1]: 注释内容。。本文介绍脚注标签、较长的注释、重复引用,以及哪些应用支持脚注。

简短回答

Markdown 怎么加脚注?

在文字后面写方括号、插入符和标签:[^1];再单独一行用同样的标签加冒号写注释:[^1]: 注释内容。 脚注会按顺序编号,列在文档末尾,并带有返回正文的链接。

Markdown
Markdown 诞生于 2004 年。[^1]

[^1]: 由 John Gruber 发布,Aaron Swartz 参与了设计。

显示效果

Markdown 诞生于 2004 年。1

Footnotes
  1. 由 John Gruber 发布,Aaron Swartz 参与了设计。 ↩

脚注的写法和示例

脚注来自 GitHub 风格 Markdown 和 Pandoc,引用和定义只要用同一个标签就能对应上。

命名脚注

标签可以是一个词,渲染后仍按第一次引用的顺序编号。

Markdown
规范覆盖了所有边界情况。[^spec]

[^spec]: 见 CommonMark 规范。

显示效果

规范覆盖了所有边界情况。1

Footnotes
  1. 见 CommonMark 规范。 ↩

多段落的脚注

脚注的后续段落缩进四个空格。

Markdown
见脚注。[^long]

[^long]: 脚注的第一段。

    第二段,缩进了四个空格。

显示效果

见脚注。1

Footnotes
  1. 脚注的第一段。

    第二段,缩进了四个空格。 ↩

一个脚注被多次引用

重复使用同一个标签就会指向同一条脚注,脚注会为每次引用各生成一个返回链接。

Markdown
第一次提到。[^src]第二次提到。[^src]

[^src]: 两处引用都指向这里。

显示效果

第一次提到。1第二次提到。1

Footnotes
  1. 两处引用都指向这里。 ↩ ↩2

定义写在哪里

定义可以写在任何位置,例如紧跟在段落后面,脚注总是显示在文档末尾。

Markdown
第一段。[^a]

[^a]: 定义紧跟在段落后面。

这一段仍然显示在脚注前面。

显示效果

第一段。1

这一段仍然显示在脚注前面。

Footnotes
  1. 定义紧跟在段落后面。 ↩

脚注里的格式

脚注和普通段落一样,可以有链接、代码和强调。

Markdown
用 npm 安装。[^npm]

[^npm]: 运行 `npm install`,或查看 [npm 文档](https://docs.npmjs.com)。

显示效果

用 npm 安装。1

Footnotes
  1. 运行 npm install,或查看 npm 文档。 ↩

行内脚注

Pandoc 和 Obsidian 支持把注释直接写在句子里,其他渲染器会原样显示。

Markdown
水在 100 °C 沸腾。^[在海平面气压下。]

仅适用于 Pandoc 和 Obsidian。其他 Markdown 应用的显示效果不同,因此不提供预览。

各平台的脚注支持

脚注属于扩展语法,支持范围广,但并非处处可用。

应用支持情况说明
GitHub支持文件、Issue、PR 和评论都支持脚注,带返回链接。
GitLab支持文件、Issue 和合并请求都支持脚注。
Obsidian支持支持脚注和 ^[文字] 写法的行内脚注。
Hugo / Jekyll支持默认的 Markdown 引擎都支持脚注。
Discord / Slack不支持不支持脚注,方括号会原样显示。

常见问题

GitHub 支持脚注吗?

支持,文件、Issue、Pull Request 和评论里都可以用。脚注显示在末尾,并带有返回每处引用的链接。

为什么脚注没有显示?

只有引用 [^1] 和定义 [^1]: 文字 都存在且标签相同时,脚注才会显示。定义要写在行首,冒号紧跟在方括号后面。

能指定脚注显示的位置吗?

不能。渲染器会把所有脚注集中放在文档末尾,按第一次引用的顺序排列。

脚注标签必须是数字吗?

不必。任何不含空格的标签都可以,例如 [^source],渲染后仍会显示为数字编号。

脚注里能放链接、代码或列表吗?

可以。行内格式都能用,缩进四个空格的行还可以给脚注加段落、列表或代码块。

脚注属于标准 Markdown 吗?

CommonMark 没有脚注,GitHub 风格 Markdown、Pandoc、Obsidian 和大多数网站生成器都把它作为扩展加入了。

行内脚注怎么写?

Pandoc 和 Obsidian 支持在句子里直接写 ^[注释内容],GitHub 不支持。

导出 Word 或 PDF 时脚注会保留吗?

Markdown 转 Word 会把它们转成 Word 的页面底部脚注,Markdown 转 PDF 会把它们打印在文档末尾。