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

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

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


当前回答

在GitHub Wiki markdown中,我使用散列符号(#),后面跟着两个空格,使换行符变大。它实际上并没有提供多个换行符,但它提供了一个大换行符,很好地满足了我的需求。

而不是:

text
(space)(space)
more text

我做了:

text
(hash mark)(space)(space)
more text

其他回答

如果你正在使用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 "))将得到:

在支持等式输出的Markdown风格中,以下代码应该在一行中单独工作,在之前和之后都有空行(重复更多行):

$ ~ $

它基本上是一个方程,只包含一个方程——空白。好处是,在Markdown风格,包括PDF和HTML输出选项(包括Rmarkdown),它应该以相同的方式理解这两种输出类型,而我不确定PDF输出将如何解释<br>或&nbsp;

对于Markdown中的空行,转义一个空格(\),然后添加新行。

例子:

"\

"

记住:转义一个空格和转义一个新行。这种方式是Markdown兼容的,并且应该在任何编译器中正确编译。您可能必须选择示例文本以查看它是如何设置的。

基本上,如果你使用的库是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的实现都是正确的。

你可以用这个来完美地完成:

texttextexttexttext
&nbsp;
&nbsp;
texttexttexttexttext