Markdown 注释
Markdown 本身没有注释语法,但有两种写法可以在渲染后的页面上隐藏文字:HTML 注释和没有被引用的链接定义。本文介绍这两种写法以及各自适合的场合。
简短回答
Markdown 怎么写注释?
用 HTML 注释包住文字:<!-- 备注 -->,它在渲染后的页面上不显示,但仍然留在文件里。如果希望连 HTML 里也没有,就单独写一行没有被引用的链接定义:[//]: # (备注)。
Markdown
看得见的文字。
<!-- 这条备注被隐藏了。 -->
[//]: # (这一条也被隐藏了。)
更多看得见的文字。显示效果
看得见的文字。
更多看得见的文字。
注释的写法和示例
两种注释在渲染后的页面上都会消失,区别在于文字还会留在哪里。
HTML 注释
渲染后的页面上不显示。注释仍然留在 Markdown 文件里,有些网站还会把它留在网页的 HTML 源码里。
Markdown
看得见的文字。
<!-- 这条备注被隐藏了。 -->
更多看得见的文字。显示效果
看得见的文字。
更多看得见的文字。
多行注释
HTML 注释可以跨任意多行。
Markdown
<!--
待办:补充截图
和常见问题。
-->
正文从这里继续。显示效果
正文从这里继续。
链接定义写法
没有被引用的链接定义不会产生任何输出,HTML 里也没有。它必须写在一行里,前面要有空行。
Markdown
看得见的文字。
[//]: # (这条注释不会出现在 HTML 里。)
更多看得见的文字。显示效果
看得见的文字。
更多看得见的文字。
链接定义的其他写法
标签和地址可以随意写,注释放在括号或引号里的标题部分。
Markdown
[comment]: <> (用空地址隐藏)
[//]: # "用引号里的标题隐藏"
只显示这一行。显示效果
只显示这一行。
注释掉一整段
用 HTML 注释包住一段 Markdown,可以先隐藏而不删除。
Markdown
## 更新日志
<!--
## 旧的规划
- 深色模式
-->
- 修复了登录问题显示效果
更新日志
- 修复了登录问题
Obsidian 注释
Obsidian 在阅读视图中隐藏两个 %% 之间的文字,其他应用会显示百分号。
Markdown
看得见的文字 %%行内注释%%
%%
隐藏的
多行内容。
%%仅适用于 Obsidian。其他 Markdown 应用的显示效果不同,因此不提供预览。
各平台的注释支持
渲染 Markdown 文件的应用会隐藏两种注释,聊天软件没有注释。
| 应用 | 支持情况 | 说明 |
|---|---|---|
| GitHub / GitLab | 支持 | 文件、Issue 和 PR 里的 HTML 注释和 [//]: # 都会隐藏。 |
| Obsidian | 支持 | HTML 注释和 %%文字%% 都会隐藏。 |
| VS Code / Typora | 支持 | 预览中两种注释都会隐藏。 |
| Hugo / Jekyll | 支持 | 两种注释都不会显示在页面上,HTML 注释可能留在网页源码里。 |
| Discord / Slack | 不支持 | 没有注释,文字会原样发出。 |
常见问题
HTML 注释读者看得到吗?
渲染后的页面上看不到。但打开 Markdown 文件的人都能看到,有些网站还会把注释留在网页的 HTML 源码里,所以不要把密码或私人内容写在注释里。
[//]: # 是什么意思?
[//]: # 是什么意思?这是一个链接定义,标签是
//,地址是 #。没有任何地方引用它,所以它不会产生输出,后面括号里的文字就起到了注释的作用。为什么注释显示出来了?
链接定义写法前面需要空一行,并且要写在一行里。HTML 注释必须以
--> 结尾,没有结尾时,后面的内容可能全部消失。GitHub 支持注释吗?
支持。GitHub 会在文件、Issue 和 Pull Request 中隐藏 HTML 注释和
[//]: #。Issue 和 Pull Request 模板常用 HTML 注释写填写说明。能隐藏一整段内容吗?
能。在这段内容的上一行写
<!--,下一行写 -->,中间的 Markdown 都不会显示。代码块里能写注释吗?
代码块里的内容都会原样显示,Markdown 注释在那里会变成普通文字。请使用代码所用语言自己的注释写法。
Obsidian 里怎么写注释?
用
%% 包住文字:%%隐藏的内容%%。编辑时可以看到,阅读视图中会隐藏。导出 PDF 或 Word 时注释会保留吗?
不会。两种注释都不产生输出,Markdown 转 PDF 和 Markdown 转 Word 都会把它们去掉。