先看结论:你要的是新段落,还是同一段里的换行?
Markdown 中“源码换了一行”和“页面上一定换一行”不是一回事。先判断语义:是开始新段落,还是仍然属于同一段,只需要视觉上换到下一行。
新段落用空行;同一段里的硬换行用行尾两个空格或行尾反斜杠;什么都不加只按一次 Enter,通常是软换行。
| 目的 | Markdown 源码 | 常见结果 | 适用场景 |
|---|---|---|---|
| 新段落 | 中间留一个空行 | 两个段落块 | 文章、README、说明文档 |
| 同段强制换行 | 行尾两个空格 | 下一行显示,但仍在同一段 | 地址、署名、短句排版 |
| 可见的硬换行标记 | 行尾 \ | 下一行显示 | 不想依赖不可见尾随空格时 |
| HTML 换行 | <br> | 显式换行 | 仅限允许原始 HTML 的目标 |
为什么只按一次 Enter,页面上可能没有明显换行?
在 CommonMark 中,没有行尾两个空格或反斜杠的普通换行会被解析为 soft break,也就是软换行。它不会结束当前段落。
渲染器可以把软换行显示成换行,也可以显示成空格。很多 HTML 场景下,它看起来就像一句话中间的普通空格,所以“源码两行”不等于“页面两行”。
这里是第一行源码。
这里是第二行源码。这里是第一行源码。 这里是第二行源码。要开始新段落:留一个空行
如果两段文字表达的是两个独立意思,最清楚的写法是在它们之间留一整行空白。这样得到的是两个段落,而不是同一段里的两行。
不要为了增加段落间距就在每段之间塞 <br>。真正的段落结构更容易被样式表、转换器和后续编辑正确理解。
迁移已经完成。
接下来由评审人检查结果。渲染为两个独立段落。要在同一段里强制换行:行尾放两个空格
在上一行末尾输入两个或更多空格,再换行,可以创建 CommonMark 定义的硬换行。下一行仍属于同一个段落。
缺点是这两个空格肉眼很难看到。有些格式化工具、编辑器保存规则或代码检查会自动清理行尾空格,从而把硬换行一起删掉。
张宁
技术文档负责人张宁
技术文档负责人不想依赖隐形空格:使用行尾反斜杠
CommonMark 还允许在行尾放一个反斜杠,然后换行。它同样表示同一段中的硬换行,而且源码里更容易看见。
反斜杠必须位于行尾才表示这种换行。放在其他位置时,通常会参与转义后面的字符。
第一行\
第二行第一行
第二行<br> 什么时候可以用?
<br> 是 HTML 标签,不是 Markdown 核心换行语法。只有当目标 Markdown 解析器允许原始 HTML,并且没有在发布时被过滤掉时,它才会按预期工作。
如果文档要在多个 Markdown 工具之间流转,优先使用空行、两个尾随空格或行尾反斜杠;只有确认最终平台接受原始 HTML 时,再考虑 <br>。
| 方法 | 是否依赖原始 HTML | 跨工具可移植性 |
|---|---|---|
| 空行 | 否 | 高 |
| 两个尾随空格 | 否 | 高,但可能被清理 |
| 行尾反斜杠 | 否 | CommonMark 兼容环境较稳 |
| <br> | 是 | 取决于目标平台 |
列表、引用和表格里的换行要单独判断
列表项内部继续写内容时,要遵守列表缩进和段落规则;引用块中为了源码清晰,可以给每个引用行都加 >。
标准的管道表格 Markdown 并没有定义可移植的多行单元格。某些平台允许在单元格中使用 <br>,但这属于环境差异,发布前要在最终平台测试。
- 第一段。
同一列表项里的第二段。
> 第一行引用。
> 第二行引用。列表项保留两个段落,引用内部使用硬换行。换行不生效时,按这个顺序排查
先缩小问题范围,只保留一两行最小示例。最小示例能正常渲染后,再逐步加回列表、引用、表格或代码块结构。
- 确认你真正需要的是新段落还是硬换行。
- 如果用两个尾随空格,检查编辑器或格式化工具是否自动删除了它们。
- 换成行尾反斜杠测试,排除不可见空格问题。
- 检查最终发布平台是否使用不同 Markdown 规则或 HTML 清理策略。
- 确认文本没有意外落在未关闭的代码围栏里。
发布前以最终渲染器为准
Markdown 语法解决的是结构表达,但具体平台可能在软换行、原始 HTML、表格扩展等方面有自己的配置。源码看起来正确,不代表所有目标环境显示完全一致。
先用通用 Markdown 预览确认结构,再到真正要发布的 Git 仓库、文档系统、博客或编辑器中做最后检查。
相关工具
常见问题
Markdown 怎么强制换行?
在上一行结尾加两个空格或一个反斜杠,再换行。两种写法都会在 CommonMark 兼容渲染器中创建硬换行。
Markdown 里空一行和换一行有什么区别?
空一整行会开始新段落;行尾两个空格或反斜杠是在同一段内部换行。普通源码换行通常只是软换行。
为什么我按 Enter 后还是显示在一行?
因为普通换行通常是 soft break。很多渲染器会把它显示成空格。若必须显示换行,请使用硬换行语法或新段落。
两个空格和 <br> 哪个更推荐?
跨 Markdown 工具流转时,两个尾随空格或行尾反斜杠更便携。<br> 依赖目标平台允许原始 HTML。
Markdown 表格单元格可以直接换行吗?
标准管道表格没有定义可移植的多行单元格。部分渲染器支持 <br> 等扩展做法,但必须在最终平台验证。
Markdown 怎么空一行?
在两个文本块之间留一个空白源码行。它会开始新段落;连续增加很多空行通常不会按数量线性增加页面间距。
