Markdown 语法 · 转义

Markdown 转义怎么写?
让 * # _ 原样显示,别变成格式

你打了个 *#,Markdown 却把它变成斜体或标题,而你只想要那个符号本身。解法就一个字符:在它前面加个反斜杠\* 就显示一个字面的星号。

这是哪些字符会这样、怎么转义,以及唯一一个不该转的地方。

用反斜杠转义

在你想保持字面的字符前面加个 \。Markdown 看到反斜杠,把它去掉,把下一个字符原样打出来、而不当成格式。

你打 你得到 为什么
\*文字\* *文字* 否则 *文字* 会变斜体(两个变粗体)
\# 标题 # 标题 否则行首的 # 会变成标题
file\_name file_name 否则一对下划线会变斜体
1\. 项目 1. 项目 否则行首"数字加点"会开始一个有序列表
\[文字\] [文字] 否则方括号可能被当成链接的一部分

哪些字符需要转义

只有 Markdown 的标点字符转义后才有意义:反斜杠、反引号、*_[ ]( )#+-.!|。在普通字母或数字前加反斜杠不起作用,反斜杠会原样打出来。所以只在一个字符本会被当成格式时才需要转义。

唯一不该转的地方:代码里

行内代码或围栏代码块里,每个字符本来就是字面的。* 就是 *,# 就是 #,不用反斜杠。事实上在那里加反斜杠,会显示一个真的反斜杠。所以要展示一段代码,把它放进代码里、完全不用转义。这个看 代码块怎么写

经典坑:名字里的下划线

最坑所有人的是 snake_case 这种文件名和变量名。一对下划线在 Markdown 里是斜体,所以 my_long_name 可能中间被斜体化。两个办法:转义每个下划线(my\_long\_name),或把名字包进行内代码——对文件名或变量名通常更干净。

还不清楚这些符号本来干嘛的?看 AI 为什么用 markdownMarkdown 怎么写

用 NoteLoom 验一下转义

转义这种事,你会想看到渲染后的样子——因为漏掉一个反斜杠,在生文本里看不出来。NoteLoom 是个在浏览器里读写本地 .md 文件的编辑器:它的 livereading 视图边写边渲染,于是你立刻能看到一个 * 到底出成了字面星号、还是变成了斜体,然后在 source 视图里改。

先说清边界:NoteLoom 没有任何 AI。它不会替你改写或修 Markdown。它只渲染和存回你本地的文件,改这件事在你手里。

用起来:用 Chrome / Edge / Arc 打开 app.noteloom.cc,挂载一个本地文件夹,在 source 视图里写、看 live 视图的结果。直接存回本地,不上云、不用账号。

FAQ

我的 Markdown 为什么把 * 或 # 显示成了格式?
因为它们是 Markdown 的格式字符。单个 * 是斜体,** 是粗体,行首的 # 是标题,_ 是斜体。想显示字面字符,就在它前面加反斜杠:\* 得到一个字面的星号。
Markdown 里怎么转义一个字符?
在它前面加一个反斜杠(\)。\* 、\# 、\_ 、\[ 都会显示字面符号、而不触发格式。对 Markdown 的标点字符都管用。
哪些字符能转义?
Markdown 的标点集:反斜杠、反引号、星号、下划线、花括号、方括号、圆括号、井号、加号、减号、点、感叹号、竖线。在普通字母或数字前加反斜杠不起作用,反斜杠会原样显示出来。
什么时候不用转义?
行内代码或代码块里面。那里每个字符本来就是字面的,你不用转义;在那里加反斜杠反而会显示一个真的反斜杠。只在普通文本里转义。
我的 file_name 为什么变斜体了?
一对包住文字的下划线是 Markdown 斜体,所以 my_long_name 中间可能被斜体化。两个办法:转义每个下划线(my\_long\_name),或把整段包进行内代码,下划线就不动了——对文件名或变量名通常更干净。
NoteLoom 能让我看到转义生效没?
能。NoteLoom 边写边渲染你的 Markdown,live 和 reading 视图会显示一个字符到底是字面符号、还是变成了格式,你在 source 视图里改。它没有任何 AI:只渲染和存回你本地的 .md 文件。
手机或 Safari 能用 NoteLoom 弄吗?
目前不行。NoteLoom 依赖浏览器的 File System Access API,当前支持 Chrome、Edge、Arc 这类 Chromium 系桌面浏览器;Firefox、Safari 和手机端暂不支持。

边打边看转义有没有生效

用 Chrome / Edge / Arc 打开 NoteLoom,挂载一个本地文件夹,在 source 视图里写、看 live 视图里你的 \* 有没有出成字面。直接存回本地,不用装软件,也不用注册账号。

打开 NoteLoom 试试