我正在添加Markdown支持我的CMS编辑器。

写Markdown内容时,我如何创建两个空行?

我一直在努力,但总是只有一条线。


当前回答

我测试了很多Markdown实现。不间断空格ASCII字符 (后面跟着一个空行)将给出一个空行。重复这一对就可以了。到目前为止,我还没有挂过科。

例如:

 

 

你好

 

 

世界!

 

 

其他回答

您可以重复使用连续空格(U+00a0)和两个空格(U+0020×2)以及换行符(U+000a)的序列来实现这一点。根据您的用例,需要两次或两次以上。

使用(这里不是降价解释,而是)实际的空白字符(理论上是可复制粘贴的):

Preceding
   
   
   
Following.

如果你正在使用markdown-it或PythonMarkdown这样的库,这也可以通过在渲染前将两个换行符(在Regex /\n\n$/gm中)替换为一个换行符和一个不可见字符(\n)来解决。注意\n后面的字符是Alt+0160或不可见字符。

例如,使用markdown-it(尽管它也适用于任何其他库)作为输入:

1

2


3


4



5

使用md.render(string.data。替换(/\n\n$/gm, "\n "))将得到:

我不知道它是否适用于其他编辑器,但在VSCode中,简单的#后跟换行符就可以达到我的目的,并且可以无限重复。(与无输出的反引号不同)

事实上,它是一个空的标题行,所以任何文档大纲或自动格式化都可能看起来很怪异。

基本上,如果你使用的库是commonmark兼容的,你可以很容易地添加多个硬换行符(<br />)。下面是CommonMark最新规范(0.28)中的一段引文:

前面有两个或多个空格且不在块的末尾的换行符(不在代码span或HTML标记中)将被解析为硬换行符(在HTML中呈现为标记)。

然后……

对于更明显的替代方法,可以使用行结束前的反斜杠代替两个空格

说明书写得很清楚。然而,我一直在使用MarkDig的库,不太适用于两个空格技术(一定是一个bug),但它完美地工作与反弹。

也就是说,这种输入……

Line one\
\
\
\
Line two

将在“第一行”之后产生四个硬换行符。你可以在这里看到(使用反作用力)…

https://babelmark.github.io/?text=Line+one%5C%0A%5C%0A%5C%0A%5C%0ALine+two%0A

请注意,所有符合commonmark的实现都是正确的。

如果Markdown编译器支持HTML,可以在Markdown源代码中添加<br/><br/>。