先看结论:你要的是新段落,还是同一段里的换行?

Markdown 中“源码换了一行”和“页面上一定换一行”不是一回事。先判断语义:是开始新段落,还是仍然属于同一段,只需要视觉上换到下一行。

新段落用空行;同一段里的硬换行用行尾两个空格或行尾反斜杠;什么都不加只按一次 Enter,通常是软换行。

目的Markdown 源码常见结果适用场景
新段落中间留一个空行两个段落块文章、README、说明文档
同段强制换行行尾两个空格下一行显示,但仍在同一段地址、署名、短句排版
可见的硬换行标记行尾 \下一行显示不想依赖不可见尾随空格时
HTML 换行<br>显式换行仅限允许原始 HTML 的目标

为什么只按一次 Enter,页面上可能没有明显换行?

在 CommonMark 中,没有行尾两个空格或反斜杠的普通换行会被解析为 soft break,也就是软换行。它不会结束当前段落。

渲染器可以把软换行显示成换行,也可以显示成空格。很多 HTML 场景下,它看起来就像一句话中间的普通空格,所以“源码两行”不等于“页面两行”。

Markdown 源文
这里是第一行源码。
这里是第二行源码。
显示结果
这里是第一行源码。 这里是第二行源码。

要开始新段落:留一个空行

如果两段文字表达的是两个独立意思,最清楚的写法是在它们之间留一整行空白。这样得到的是两个段落,而不是同一段里的两行。

不要为了增加段落间距就在每段之间塞 <br>。真正的段落结构更容易被样式表、转换器和后续编辑正确理解。

Markdown 源文
迁移已经完成。

接下来由评审人检查结果。
显示结果
渲染为两个独立段落。

要在同一段里强制换行:行尾放两个空格

在上一行末尾输入两个或更多空格,再换行,可以创建 CommonMark 定义的硬换行。下一行仍属于同一个段落。

缺点是这两个空格肉眼很难看到。有些格式化工具、编辑器保存规则或代码检查会自动清理行尾空格,从而把硬换行一起删掉。

Markdown 源文
张宁  
技术文档负责人
显示结果
张宁
技术文档负责人

不想依赖隐形空格:使用行尾反斜杠

CommonMark 还允许在行尾放一个反斜杠,然后换行。它同样表示同一段中的硬换行,而且源码里更容易看见。

反斜杠必须位于行尾才表示这种换行。放在其他位置时,通常会参与转义后面的字符。

Markdown 源文
第一行\
第二行
显示结果
第一行
第二行

<br> 什么时候可以用?

<br> 是 HTML 标签,不是 Markdown 核心换行语法。只有当目标 Markdown 解析器允许原始 HTML,并且没有在发布时被过滤掉时,它才会按预期工作。

如果文档要在多个 Markdown 工具之间流转,优先使用空行、两个尾随空格或行尾反斜杠;只有确认最终平台接受原始 HTML 时,再考虑 <br>。

方法是否依赖原始 HTML跨工具可移植性
空行
两个尾随空格高,但可能被清理
行尾反斜杠CommonMark 兼容环境较稳
<br>取决于目标平台

列表、引用和表格里的换行要单独判断

列表项内部继续写内容时,要遵守列表缩进和段落规则;引用块中为了源码清晰,可以给每个引用行都加 >。

标准的管道表格 Markdown 并没有定义可移植的多行单元格。某些平台允许在单元格中使用 <br>,但这属于环境差异,发布前要在最终平台测试。

Markdown 源文
- 第一段。

  同一列表项里的第二段。

> 第一行引用。  
> 第二行引用。
显示结果
列表项保留两个段落,引用内部使用硬换行。

换行不生效时,按这个顺序排查

先缩小问题范围,只保留一两行最小示例。最小示例能正常渲染后,再逐步加回列表、引用、表格或代码块结构。

  1. 确认你真正需要的是新段落还是硬换行。
  2. 如果用两个尾随空格,检查编辑器或格式化工具是否自动删除了它们。
  3. 换成行尾反斜杠测试,排除不可见空格问题。
  4. 检查最终发布平台是否使用不同 Markdown 规则或 HTML 清理策略。
  5. 确认文本没有意外落在未关闭的代码围栏里。

发布前以最终渲染器为准

Markdown 语法解决的是结构表达,但具体平台可能在软换行、原始 HTML、表格扩展等方面有自己的配置。源码看起来正确,不代表所有目标环境显示完全一致。

先用通用 Markdown 预览确认结构,再到真正要发布的 Git 仓库、文档系统、博客或编辑器中做最后检查。

相关工具

Markdown 在线预览快速测试空行、硬换行和软换行的实际渲染。Markdown 语法速查查看标题、列表、引用、代码和换行的常用写法。Markdown 引用生成器需要在引用块里保留多行或多段时生成正确的 > 前缀。Markdown 转 HTML检查段落与硬换行最终对应的 HTML 结构。
FAQ

常见问题

Markdown 怎么强制换行?

在上一行结尾加两个空格或一个反斜杠,再换行。两种写法都会在 CommonMark 兼容渲染器中创建硬换行。

Markdown 里空一行和换一行有什么区别?

空一整行会开始新段落;行尾两个空格或反斜杠是在同一段内部换行。普通源码换行通常只是软换行。

为什么我按 Enter 后还是显示在一行?

因为普通换行通常是 soft break。很多渲染器会把它显示成空格。若必须显示换行,请使用硬换行语法或新段落。

两个空格和 <br> 哪个更推荐?

跨 Markdown 工具流转时,两个尾随空格或行尾反斜杠更便携。<br> 依赖目标平台允许原始 HTML。

Markdown 表格单元格可以直接换行吗?

标准管道表格没有定义可移植的多行单元格。部分渲染器支持 <br> 等扩展做法,但必须在最终平台验证。

Markdown 怎么空一行?

在两个文本块之间留一个空白源码行。它会开始新段落;连续增加很多空行通常不会按数量线性增加页面间距。