Markdown 换行生成器

选择一种换行写法、编辑示例文本,实时查看 Markdown 的渲染结果。全部计算都在你的浏览器本地完成。

免费 · 无需注册 · 全程在浏览器内运行最后更新

Markdown 里怎么换行?

在行尾敲两个空格再回车,Markdown 就会在同一段落内插入一个换行,对应 HTML 的 <br>。行尾加一个反斜杠效果完全相同,而且在源码里看得见。如果想另起一段,则在两段文字之间空出一整行,渲染时会生成新的 <p> 元素,上下间距更大。

markdown
第一行文字。  
第二行文字。

这是新的一段。

前两行位于同一段落内的相邻两行,中间是一个 <br>;第三句单独成段。

在线使用 Markdown 换行生成器

Markdown 换行方式

行尾两个空格

在行尾加两个空格,即可在 Markdown 中插入换行。

预览

这一行的末尾有两个空格。
这段文字会显示在新的一行。

Markdown 换行的全部写法

Markdown 区分「换行」和「分段」:换行仍在同一段落内、行距紧凑;分段会新建一个块级元素、上下留白更大。实现换行一共有四种写法,各自的失效场景完全不同。

行尾两个空格(标准换行)

在行尾正好敲两个空格再回车,所有符合 CommonMark 的渲染器都会在当前段落内插入一个 <br>。空格是不可见的,这也正是「Markdown 换行没生效」最常见的原因。

markdown
第一行文字。  
第二行文字。

渲染为同一段落内的两行,对应 HTML:第一行文字。<br>第二行文字。

行尾反斜杠

行尾加一个反斜杠可以得到完全相同的硬换行。它在源码里看得见,也不会被「保存时删除行尾空格」的编辑器吃掉。CommonMark、GitHub、GitLab、Pandoc 和 VS Code 预览都支持。

markdown
第一行文字。\
第二行文字。

渲染结果与两个空格完全一致,但直接读源码时就能看出这里有换行。

空行分段

留出一整行空行会关闭当前段落并开启新段落。这是「分段」而不是「换行」:会生成独立的 <p> 元素并带上真实的段间距,且所有 Markdown 方言无一例外都支持。

markdown
这是第一段文字。

这是第二段文字。

生成两个独立的 <p> 元素,中间带有外边距,而不是一段文字被拆成两行。

HTML <br> 标签

Markdown 允许直接书写 HTML,所以当行尾空格被格式化工具删掉、或者 Markdown 语法够不着的位置,<br> 就是兜底方案。但会过滤 HTML 的平台(Discord、Slack、Reddit)会直接忽略它。

markdown
第一行。<br>第二行。<br />第三行。

同一段落内显示三行。<br> 与 <br /> 等价,自闭合写法只在严格 XHTML 中才有区别。

表格单元格内换行

Markdown 表格的一行必须写在同一物理行上,在单元格里回车只会结束这一行表格。此处只能用 HTML 标签,行尾空格和反斜杠都会被表格解析器吃掉。

markdown
| 步骤 | 说明 |
| --- | --- |
| 安装 | 执行 npm install<br>然后重启开发服务器 |

第二个单元格内「执行 npm install」和「然后重启开发服务器」分两行显示,仍属于同一个单元格。

列表项内换行

列表项内部同样可以用行尾两个空格换行,但续行必须缩进到与条目正文对齐。缺少缩进时渲染器会认为列表已经结束,把后面的文字当成新段落。

markdown
- 第一条,第一行。  
  第一条,第二行。
- 第二条。

第一个条目包含两行文字,后面跟着第二个条目——而不是变成三条并列的列表项。

各平台的 Markdown 换行差异

最容易踩坑的一点是:同一个平台在不同位置行为也不一样。GitHub 的评论框里回车一次就换行,而仓库里的 README 会把单个换行折叠掉。发布前请在内容真正落地的位置验证。

平台支持情况说明
GitHub Issue / 评论完全支持回车一次即换行,不需要额外加两个空格。
GitHub README / .md 文件部分支持按 CommonMark 渲染,单个换行会被折叠,需要两个空格、反斜杠或 <br>。
GitLab完全支持Issue、MR 和仓库文件中,两个空格、反斜杠、<br> 均可用。
Discord部分支持用 Shift+Enter 换行;行尾空格和 HTML 标签都无效。
Slack部分支持只能用 Shift+Enter;Slack 的 mrkdwn 没有行尾空格和 <br> 语法。
Obsidian完全支持默认单个换行即生效;打开「严格换行」后回到 CommonMark 行为。
Notion部分支持块内用 Shift+Enter 换行;粘贴时行尾空格会被清除。
Reddit部分支持空行是最可靠的分隔方式;HTML 标签会被安全过滤掉。
VS Code 预览完全支持默认遵循 CommonMark;开启 markdown.preview.breaks 后单个换行也会生效。

如何用本工具生成 Markdown 换行

  1. 选择换行方式

    用选项卡在行尾空格、反斜杠、空行分段和 HTML <br> 之间切换,每个选项卡都会把一段可用示例载入编辑器。

  2. 编辑示例文本

    直接改写示例内容。真正产生换行的是行尾的两个空格或反斜杠,改写句子时记得保留它们。

  3. 核对实时预览

    右侧面板会随输入实时渲染,发布前先确认换行位置正好落在你想要的地方。

  4. 复制 Markdown

    点击复制按钮,把包含不可见行尾空格在内的完整语法复制到剪贴板。

常见问题

为什么我的 Markdown 换行不生效?

绝大多数情况是行尾那两个空格被删掉了。多数编辑器和格式化工具会在保存时自动清除行尾空白,而单独一个回车会被 CommonMark 折叠成一个普通空格。如果需要不怕自动格式化的写法,改用行尾反斜杠或 HTML 的 <br> 标签。

Markdown 换行需要几个空格?

行尾正好两个空格,然后回车。多于两个在大多数渲染器里也有效,但两个是规范规定的最小值,也是最稳妥的选择。写在空行上的空格则完全不起作用。

Markdown 里换行和分段有什么区别?

换行让文字仍留在同一段落内,编译成 <br> 元素,两行之间几乎没有额外间距。分段用一个空行实现,会关闭当前段落并新建一个 <p>,带来真实的段间距。地址、诗句适合用换行,表达不同意思时用分段。

按一次回车能不能换行?

取决于渲染器。标准 CommonMark 把单个换行当作软换行,折叠成一个空格;而 GitHub 的评论框、GitLab、Discord、Obsidian 和 Notion 都开启了硬换行,回车一次就够。GitHub 仓库中渲染的 README 则不行。

Markdown 表格里怎么换行?

用 HTML 的 <br> 标签。表格的一行必须写在同一物理行上,真正回车会结束这一行表格而不是换行。行尾空格和反斜杠会被表格解析器吃掉,不会产生任何效果。

列表项内部怎么换行?

在行尾敲两个空格,并把续行缩进到与条目正文对齐,通常是两个或四个空格。缺少这段缩进时,渲染器会认为列表已结束,把下一行当作新的段落处理。

怎么在编辑器里看到行尾空格?

打开空白字符显示。VS Code 把 editor.renderWhitespace 设为 all 即可;Sublime Text、JetBrains 系列和 Vim 也有同类选项,名称类似 Show Whitespace 或 list。同时确认 Markdown 文件没有开启「保存时删除行尾空白」。

Markdown 里可以用 <br> 标签吗?

可以,凡是把 Markdown 渲染成 HTML 的场景都支持,包括 GitHub、GitLab、Obsidian、Jekyll、Hugo 和 MkDocs。但 Discord、Slack、Reddit 这类会过滤 HTML 的平台会忽略它,标签要么消失,要么原样显示成纯文本。

怎样在两段之间增加更多空白?

连续的空行会被合并成一个,多敲几行没有用。可以在两段之间放一行只包含 &nbsp; 的内容,或者连写两个 <br> 标签。如果是文档站点,用 CSS 类或间距组件是更干净的做法。

GitHub README 里怎么换行?

README 按 CommonMark 渲染,单个回车会被折叠。请在行尾加两个空格或一个反斜杠,或者插入 <br>。这一点与 GitHub 的 Issue 和 Pull Request 评论不同,那里回车一次就会换行。