Typora 中的换行处理

我使用 Typora 编辑 Hugo 内容的 markdown 源文件。

当需要分段时,输入 Enter ,Typora 会在源码中自动插入一个空行

Hello

World

当排版需要连续的两行时,则输入 Shift + Enter ,换行在 Typora 中能够正确显示

Hello
World

但这是因为在 Preference > Markdown > Whitespace / Line Break > When Writing 的值设置为了 Preserve whitespace and single line break。(不记得这是默认设置还是刚上手时修改了设置)

问题

在 Typora 中能够正确显示的连续两行

Hello
World

上传到 GitHub、用 Hugo 输出为 HTML 时不能正确显示。(用其它的 markdown 编辑器打开也可能会有兼容问题)

连续两行会被显示成这样

Hello World

原因

根据 Markdown Syntax 文档,当从源码输出为 HTML 时,换行符(软换行)不会被转换为 <br /> (硬换行),如果要插入硬换行,你需要在行尾输入两个(或更多)空格。

根据 GitHub Flavored Markdown Spec 文档,要插入硬换行,你还可以在行尾输入 \ 或者直接输入 <br />

然后,简洁如 Markdown 也已经出现了一堆 Flavor,人性啊。

解决方案

在行尾插入 两个空格、 \<br /> 的缺点

如果只使用 Typora 查看编辑 markdown 文件,可以继续用兼容设置。

Hugo 使用 BlackFriday 把 markdown 转换为 HTML,可以在 Hugo 的配置文件中添加以下设置,将换行符强制输出为硬换行。

[blackfriday]
  extensions = ["hardLineBreak"]

以后还是乖乖地用两个空格换行吧。