Markdown 转义怎么写?
让 * # _ 原样显示,别变成格式
你打了个 * 或 #,Markdown 却把它变成斜体或标题,而你只想要那个符号本身。解法就一个字符:在它前面加个反斜杠。\* 就显示一个字面的星号。
这是哪些字符会这样、怎么转义,以及唯一一个不该转的地方。
用反斜杠转义
在你想保持字面的字符前面加个 \。Markdown 看到反斜杠,把它去掉,把下一个字符原样打出来、而不当成格式。
| 你打 | 你得到 | 为什么 |
|---|---|---|
\*文字\* | *文字* | 否则 *文字* 会变斜体(两个变粗体) |
\# 标题 | # 标题 | 否则行首的 # 会变成标题 |
file\_name | file_name | 否则一对下划线会变斜体 |
1\. 项目 | 1. 项目 | 否则行首"数字加点"会开始一个有序列表 |
\[文字\] | [文字] | 否则方括号可能被当成链接的一部分 |
哪些字符需要转义
只有 Markdown 的标点字符转义后才有意义:反斜杠、反引号、*、_、、[ ]、( )、#、+、-、.、!、|。在普通字母或数字前加反斜杠不起作用,反斜杠会原样打出来。所以只在一个字符本会被当成格式时才需要转义。
唯一不该转的地方:代码里
行内代码或围栏代码块里,每个字符本来就是字面的。* 就是 *,# 就是 #,不用反斜杠。事实上在那里加反斜杠,会显示一个真的反斜杠。所以要展示一段代码,把它放进代码里、完全不用转义。这个看 代码块怎么写。
经典坑:名字里的下划线
最坑所有人的是 snake_case 这种文件名和变量名。一对下划线在 Markdown 里是斜体,所以 my_long_name 可能中间被斜体化。两个办法:转义每个下划线(my\_long\_name),或把名字包进行内代码——对文件名或变量名通常更干净。
还不清楚这些符号本来干嘛的?看 AI 为什么用 markdown 和 Markdown 怎么写。
用 NoteLoom 验一下转义
转义这种事,你会想看到渲染后的样子——因为漏掉一个反斜杠,在生文本里看不出来。NoteLoom 是个在浏览器里读写本地 .md 文件的编辑器:它的 live 和 reading 视图边写边渲染,于是你立刻能看到一个 * 到底出成了字面星号、还是变成了斜体,然后在 source 视图里改。
先说清边界:NoteLoom 没有任何 AI。它不会替你改写或修 Markdown。它只渲染和存回你本地的文件,改这件事在你手里。
用起来:用 Chrome / Edge / Arc 打开 app.noteloom.cc,挂载一个本地文件夹,在 source 视图里写、看 live 视图的结果。直接存回本地,不上云、不用账号。
FAQ
我的 Markdown 为什么把 * 或 # 显示成了格式?
Markdown 里怎么转义一个字符?
哪些字符能转义?
什么时候不用转义?
我的 file_name 为什么变斜体了?
NoteLoom 能让我看到转义生效没?
手机或 Safari 能用 NoteLoom 弄吗?
边打边看转义有没有生效
用 Chrome / Edge / Arc 打开 NoteLoom,挂载一个本地文件夹,在 source 视图里写、看 live 视图里你的 \* 有没有出成字面。直接存回本地,不用装软件,也不用注册账号。