如何强制换行?

Sup*_*est 31 markdown line-breaks

我注意到如果我在图像后面开始一个新段落,大多数渲染器会在图像和下面的文本之间留下不足的空间.该段最终看起来像一个传奇.虽然当我想要一个图例时这很有用,但有时我只想在两段之间插入一个图像,并且如上所述在下面充分间隔.

我目前纠正了这个问题:

Lorem ipsum dolor sit amet, consectetur adipiscing elit:

[IMAGE]

<br/><br/>

Pellentesque pharetra turpis vitae velit consequat placerat. Duis sed volutpat neque, et scelerisque orci.
Run Code Online (Sandbox Code Playgroud)

但这让我感到不雅观:如果可能,我想避免使用HTML.

还有另一种强制换行的方法吗?

我正在使用Markdown Preview Plus for Atom进行渲染.

小智 36

Markdown中的换行符是"行尾的两个或多个空格".

  • 请通过证实您所说的内容来改进您的答案(例如,带有链接的文档片段将是完美的)。 (3认同)
  • 基于此,我添加了另一个答案,因为两个空格被认为是正确的。 (2认同)

Way*_*lan 27

TL;博士

总之,你不能用纯Markdown.您需要使用原始HTML和/或CSS样式.最简单的是插入<br/><br/>到您的文档中.

很长的解释

浏览器通过从样式表中获取指令来确定如何在页面中显示各种HTML元素.这些样式表可以从多个来源获得:(1)浏览器的默认样式表,(2)本地用户定义的样式表,(3)文档作者提供的样式表,以及(4)嵌入在HTML中的内联样式(这篇引人入胜,篇幅冗长的文章打破了整个过程).

我们想要考虑的是第一个; 浏览器的默认样式表.这些告诉浏览器各种元素的默认样式,段落的填充,不同级别标题的大小,列表项的缩进和项目符号等.事实上,快速搜索会发现一大堆 - 所以称为"重置"样式表,用于撤消所有这些默认样式.

这是您遇到的情况,默认样式不会在图像和其后的段落之间提供足够的填充.你有几个选择来解决这个问题:

  1. 定义用户样式表(存储在本地计算机上),浏览器将使用该表来更改/覆盖默认样式表.当然,这只会对你的机器产生影响.任何其他机器仍将使用默认样式.

  2. 为您的页面定义样式表,该样式表通过模板或其他内容附加到页面.但是,如果您将文档发布在不允许此类控制的主机上(如wiki),那么这也无济于事.

  3. 在文档中定义一些内联样式.当然,这意味着您需要为图像定义原始HTML.在某些服务上,原始HTML和/或内联CSS可能会被删除.

最后,这一切都取决于您打算如何使用您的文件.但这并没有真正回答你的问题.你如何在Markdown中实现这一目标?总之,你不能.

正如Markdown的作者所解释的那样(强调保留):

Markdown的语法用于一个目的:用作为Web 编写的格式.

Markdown不是HTML的替代品,甚至不接近它.它的语法非常小,仅对应于HTML标签的一小部分.我们的想法不是创建一种语法,以便更容易插入HTML标记.在我看来,HTML标签已经很容易插入.Markdown的想法是让阅读,编写和编辑散文变得容易.HTML是一种发布格式; Markdown是一种写作 形式.因此,Markdown的格式化语法仅解决可以用纯文本传达的问题.

如果您担心元素之间的填充,则需要考虑格式化,而不是写入,这超出了Markdown的预期范围.是的,可以恢复原始HTML(可能使用嵌入式内联CSS)来强制执行所需的格式,但这正是它应该如何工作的.事实上,上述引文中的下一段说明:

对于Markdown语法未涵盖的任何标记,您只需使用HTML本身.没有必要为它添加前缀或分隔它以表明您正在从Markdown切换到HTML; 你只需使用标签.

因此,解决问题的适当方法是使用原始HTML和/或CSS,而不是使用一些特殊的Markdown语法.

  • 对于任何试图回答与我相同的问题的人,简短的回答是:"<br/> <br/>"是你最好的选择. (2认同)
  • 在Markdown中**是可能的。最后需要两个或多个空格。但是,由于大多数编辑器和环境在所有文件中都删除了结尾的空格,所以这可能是有问题的并且容易遗漏,因此我认为&lt;br/&gt;选项是可行的。 (2认同)

And*_*e M 24

简短的回答:在行尾有两个空格

细节:

我提供了一个更新的答案,因为@ xof的答案,虽然不完整是正确的(根据文档):

当您想要使用Markdown插入<br /> break标记时,您将结束一个包含两个或更多空格的行,然后键入return.

是的,这需要更多的努力才能创建一个<br />,但是简单的"每个换行符是<br />"规则对Markdown不起作用.当您使用硬中断格式化时,Markdown的电子邮件风格的区块报价和多段列表项目效果最好 - 看起来更好.

此外,这还有一个额外的好处,即避免文档不必要地成为markdown和HTML的混合.当Markdown查看器不可用时(例如在终端窗口中),这保留了可读性.

只有一件事:不要对尾随空格进行全局修剪,这通常是源代码的习惯,否则你将失去重要的格式.


小智 12

根据 Markdown 指南,为了强制换行,需要在行尾添加 2 个空格,然后按回车键。

请参阅此处的指南。https://markdown-guide.readthedocs.io/en/latest/basics.html#line-return

当我在 Markdown 文档中简单地输入回车符时,有时会出现奇怪的行为。但按照本指南,我只需在行尾添加 2 个空格即可强制换行。


小智 6

行尾的反斜杠“\”似乎也有效。它不会通过尾随空格删除来删除。

  • 100%应该选择这个答案。 (4认同)
  • 即使它看起来更像是评论而不是答案,它仍然有效。没有其他人提到这个解决方案,所以感谢@tweber。 (3认同)
  • 不过,并非所有 Markdown 解析器都支持这一点,这就是为什么不推荐此解决方案(至少不是首选解决方案):https://www.markdownguide.org/basic-syntax/#line-break-best-practices (2认同)