Markdown 语法 · 排错

Markdown 分隔线怎么画?
以及为什么你的 --- 变成了大标题

Markdown 里的分隔线(横跨页面的那条线)就是三个以上的短横、星号或下划线,单独放一行:---***___。规则就这么简单。

麻烦在于 --- 有第二个身份。把它紧贴一行文字的下方,Markdown 会把那行文字变成标题、而不是画一条线。同样三个字符、两种完全不同的结果,这就是让人栽跟头的地方。

本页讲的是水平分隔线和那个变标题的坑。如果你的问题是段落里另起一行却不换行,那是另一回事,看 Markdown 换行为什么不生效

怎么画一条分隔线

  • 三个以上相同的字符,单独占一行:---***___
  • 它的上方和下方各留一个空行
  • 三种渲染出同样的横线,输出上没有任何区别。

如果这些符号你还不太熟,Markdown 怎么写 讲了基础。

为什么你的 --- 变成了标题(Setext 坑)

Markdown 有两种标题写法。一种在前面加 #。另一种叫 Setext 标题,用 =(一级标题)或 -(二级标题)给文字加下划线。所以这个:

这里是一些文字。
---

不是"一行文字 + 一条分隔线",Markdown 把它读成一个整体:文字 这里是一些文字。 是标题,下面的短横是它的下划线。修法很简单——中间用一个空行隔开。

症状与修法

你看到的 为什么 怎么修
你的 --- 显示成一条横跨页面的线 它上下都有空行 没问题,这就是对的
--- 上面的文字变成了大标题 --- 紧贴文字下方,被当成 Setext 标题的下划线 在文字和 --- 之间加一个空行
想要分隔线但什么都没渲染出来 缺空行,或不足三个字符 用三个以上、单独一行、前后留空行

放一起看,正确的分隔线和那个坑长这样:

正确的分隔线(上下都有空行):

这里是一些文字。

---

更多文字。


坑(--- 紧贴文字下方 → 变标题):

这里是一些文字。
---

两个小习惯就能绕开整个问题:永远在 --- 上方留一个空行,或者分隔线一律用 ***——因为只有 --- 会兼作标题下划线。

在 NoteLoom 里看它当场渲染

最快抓住这个坑的办法,就是看它渲染。NoteLoom 是个在浏览器里读写本地 .md 文件的编辑器:在 source 视图里打你的 ---,livereading 视图立刻显示结果,你就能看出它成了分隔线还是标题、当场把空行调好。

NoteLoom 遵循 CommonMark,所以你看到的和多数 Markdown 工具的行为一致。先说清边界:它没有任何 AI,只是把你本地的 Markdown 渲染出来、存回去。

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

FAQ

Markdown 分隔线怎么画?
三个以上的短横、星号或下划线,单独放一行、前后留空行:---(或 *** 或 ___)。三种渲染出同样的横线,一条横跨页面的分隔线。
为什么我的 --- 变成了标题、而不是横线?
因为 --- 紧贴文字下方时会被当成 Setext 标题:上一行的文字变成标题,--- 被当作它的下划线、而不是分隔线。在文字和 --- 之间加一个空行,或改用 ***。
---、***、___ 有什么区别?
输出没区别,三种都画同样的横线。挑你看着最清楚的就行;想避开标题坑就用 ***,因为只有 ---(和 ===)会兼作标题的下划线。
分隔线前后一定要留空行吗?
要。横线前后都要留空行才能稳定渲染。上方那个空行,正是阻止 --- 被当成上一行文字下划线的关键。
分隔线和换行是一回事吗?
不是。分隔线是横跨页面画的一条线;换行只是在你的文字里另起一行。是两个不同的问题。要解决"回车不换行",看 Markdown 换行那篇。
能在 NoteLoom 里检查吗?
能。NoteLoom 的 live 和 reading 视图边打边渲染,你一眼就能看出 --- 到底成了分隔线还是标题。它遵循 CommonMark,行为和多数 Markdown 工具一致;它没有任何 AI,只把结果渲染出来、存回本地。

一秒看你的 --- 渲染成什么

用 Chrome / Edge / Arc 打开 NoteLoom,挂载一个本地文件夹,在 source 视图里打 ---、看 live 视图里它画出的是分隔线还是标题。直接存回本地,不用装软件,也不用注册账号。

打开 NoteLoom 试试