Markdown 语法 · 排错

Markdown 分割线怎么打?
顺便讲清 --- 变大标题的坑

想在 Markdown 里加一条分割线(也叫分隔线、水平线),写法很简单:单独起一行,连打至少三个 -*_,比如 ---***___,前后各空一行就行。

但很多人真正的问题不是不会写,而是写了 --- 之后,上面那行字突然变成了大标题。这不是 bug,是 --- 在 Markdown 里身兼两职。下面先讲写法,再拆这个坑。

另外别把分割线和换行搞混:按回车不换行是另一个问题,看 Markdown 换行为什么不生效

分割线的正确写法

  • 至少三个相同的符号,单独占一行:---***___。多于三个也行,------ 同样是分割线。
  • 前后各空一行,尤其是上面那行,不能省。
  • 三种符号渲染出来的横线一模一样,选哪个看个人习惯。

对 Markdown 基础符号还不熟的话,可以先看 Markdown 怎么写

--- 为什么会把文字变成标题(Setext 标题)

Markdown 的标题有两种写法。常见的一种是行首加 #;另一种叫 Setext 标题:在文字的下一行写一排 =-,上面那行文字就分别变成一级、二级标题。所以下面这段:

上一段的文字。
---

在 Markdown 眼里不是「一行字加一条横线」,而是一个 Setext 标题:文字是标题内容,--- 是它的下划线。解法就一个字:——在文字和 --- 之间空一行,它就老老实实变回分割线。

还有一个身份要认识:文件最顶上成对出现的 ---,根本不是想画分割线。那是 YAML frontmatter,一块元数据,有的查看器在顶部显示的怪表格就是它。

三种情况对照

你看到的现象 原因 解法
--- 渲染成一条横线 前后都有空行,写法正确 不用改,这就是分割线
--- 上面那行文字变成了大标题 --- 紧贴文字,被当成 Setext 标题的下划线 在文字和 --- 之间空一行
--- 什么都没渲染出来 符号不足三个,或没有单独占一行 至少三个、单独一行、前后空行

正确写法和踩坑写法放在一起对比:

正确写法(--- 前后都空一行):

上一段的文字。

---

下一段的文字。


踩坑写法(--- 紧贴文字,上面那行会变标题):

上一段的文字。
---

记住两点就不会再踩:--- 上面永远空一行;或者分割线一律用 ***,它没有标题这个副业。

边打边看,当场确认

判断 --- 到底渲染成了什么,最直接的办法是找个能渲染的编辑器看一眼。NoteLoom 是一个在浏览器里读写本地 .md 文件的编辑器:在 source 视图里打字,livereading 视图立刻显示渲染结果,横线还是标题一目了然,空行当场补齐。

它遵循 CommonMark 标准,你在这里看到的行为和多数 Markdown 工具一致。

具体操作:用 Chrome / Edge / Arc 打开 app.noteloom.cc,挂载一个本地文件夹,在 source 视图里写、看 live 视图的渲染。文件直接存回本地,不上云、不用注册账号。

FAQ

Markdown 分割线怎么打?
单独起一行,连打至少三个短横线、星号或下划线,也就是 ---、*** 或 ___,再让这一行前后各空一行。渲染出来就是一条横贯页面的分割线,三种写法效果一样。
为什么我打的 --- 没变成分割线,反而把上面一行变成了大标题?
因为 --- 在 Markdown 里还有一个身份:紧贴在文字下面时,它是 Setext 标题的下划线,会把上面那行文字变成二级标题。解决办法是在文字和 --- 之间空一行,或者改用 ***。
---、***、___ 三种分割线有区别吗?
渲染结果完全一样,选哪个纯看习惯。如果想彻底避开变标题的坑,可以固定用 ***,因为只有 ---(和 ===)会被当成标题下划线。
分割线前后必须空行吗?
建议前后都空一行,这样在所有渲染器里都稳定。尤其是上面那个空行,正是它挡住了 --- 被解析成标题下划线。
分割线和换行是一回事吗?
不是。分割线是页面上实实在在的一条横线,用来分隔两块内容;换行只是文字另起一行。如果你的问题是按了回车却不换行,看《Markdown 换行为什么不生效》那篇。
怎么快速确认我打的 --- 是分割线还是标题?
找个能渲染 Markdown 的编辑器看一眼最直接。比如在 NoteLoom 的 live 视图里边打边渲染,是横线还是标题一眼就能看出来,当场把空行补上就行。它遵循 CommonMark,行为和多数工具一致。

输入 ---,立刻看到它渲染成什么

用 Chrome / Edge / Arc 打开 NoteLoom,挂载一个本地文件夹,在 source 视图里打 ---,live 视图立刻告诉你它是分割线还是标题。文件直接存回本地,不用装软件,也不用注册账号。

打开 NoteLoom 试试