【问题标题】:How to force a linebreak?如何强制换行?
【发布时间】:2016-08-03 16:04:28
【问题描述】:

我注意到,如果我在图像之后立即开始一个新段落,大多数渲染器会在图像和下面的文本之间留下不足的空间。该段落最终看起来像一个传奇。虽然这在我确实想要一个图例时很有用,但有时我只想在两个段落之间插入一张图片,并像上面一样在下面留出足够的间距。

我目前通过以下方式更正此问题:

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.

但这让我觉得很不雅:如果可能,我想避免使用 HTML。

还有其他方法可以强制换行吗?

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

【问题讨论】:

  • 也许用 css 处理这个? .your-text-container img {margin:20px 0px;}
  • @Sharky 这不会让它变得更复杂吗?或者你可以在 Markdown 中内联 CSS 吗?

标签: markdown line-breaks


【解决方案1】:

行尾的反斜杠“\”似乎也有效。并且它不会被尾随空格删除。

【讨论】:

  • 这看起来更像是评论,而不是任何答案。
  • 即使它看起来更像是评论而不是答案,它仍然有效。没有其他人提到这个解决方案,所以感谢@tweber。
  • 100% 应该选择这个答案。
【解决方案2】:

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

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

在我的降价文档中简单地输入回车时,我有时会遇到一种奇怪的行为。但是按照本指南,我可以通过在行尾添加 2 个空格来强制换行。

【讨论】:

    【解决方案3】:

    tl;博士

    简而言之,你不能使用纯 Markdown。您需要使用原始 HTML 和/或 CSS 样式。最简单的方法是将&lt;br/&gt;&lt;br/&gt; 插入到您的文档中。

    长解释

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

    我们要考虑的是第一个;浏览器的默认样式表。这些告诉浏览器各种元素的默认样式、段落的填充、不同级别标题的大小、列表项的缩进和项目符号等。事实上,一个快速的search 会出现一大堆所谓的“重置”样式表会撤消所有这些默认样式。

    这就是您遇到的情况,默认样式在图像与其后面的段落之间没有提供足够的填充。你有几个选项来解决这个问题:

    1. 定义一个用户样式表(存储在您的本地机器上),您的浏览器将使用它来更改/覆盖默认样式表。当然,这只会影响你在那台机器上。任何其他机器仍将使用默认样式。

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

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

    最终,这一切都取决于您打算如何使用您的文档。但这并不能真正回答你的问题。你如何在 Markdown 中做到这一点?简而言之,你不能。

    作为 Markdown explains 的作者(强调保留):

    Markdown 的语法有一个目的:用作 用于网络的写作格式。

    Markdown 不是 HTML 的替代品,甚至更接近它。它的 语法非常小,只对应一个非常小的子集 HTML 标记。这个想法是不是来创建一个更容易的语法 插入 HTML 标签。在我看来,HTML 标签已经很容易 插入。 Markdown 的想法是使其易于阅读、编写和 编辑散文。 HTML是一种发布格式; Markdown 是一个写作 格式。因此,Markdown 的格式化语法只解决了以下问题 可以以纯文本形式传达。

    如果你关心元素之间的填充,你关心的是格式化,而不是写作,这超出了 Markdown 的预期范围。是的,可以恢复为原始 HTML(可能带有嵌入式内联 CSS)来强制执行您想要的格式化,但这正是它应该如何工作的。事实上,上面引用的文件中的下一段是这样说的:

    对于 Markdown 语法未涵盖的任何标记,您只需 使用 HTML 本身。无需为其添加前缀或将其定界为 表明您正在从 Markdown 切换到 HTML;你只是用 标签。

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

    【讨论】:

    • 对于任何试图回答与我相同的问题的人,简短的回答:&lt;br/&gt;&lt;br/&gt; 是你最好的选择。
    • 在 Markdown 中可能的。最后需要有两个或更多空格。但是,由于大多数编辑器和环境会去除所有文件中的尾随空格,这可能会出现问题并且很容易错过,因此我认为 &lt;br/&gt; 选项是可行的方法。
    • 我面临同样的问题,我将 \n 替换为
      标签,现在它显示正确的换行符,但如果您尝试使用星号绘制列表 * 它不会呈现列表,相反它只是换行,在某些情况下 * 也不可见。有人遇到同样的问题吗?
    • 显然,正如几个答案中所说,在第一行末尾添加两个空格也可以强制换行。放一个 \ 似乎也有效。
    • 谢谢!在我的情况下(sharepoints markdown)在单词末尾添加一个点和 2 个空格可以解决问题示例:sample header. sample descriptionThanks!
    【解决方案4】:

    简答:行尾两个空格

    详情

    我提供了一个更新的答案,因为@xof 的答案虽然不完整,但它是正确的 (per the docs):

    如果您确实想使用 Markdown 插入
    中断标记,请以两个或多个空格结束一行,然后键入 return。

    是的,创建
    需要付出更多的努力,但是简单的“每个换行符都是
    ”规则不适用于 Markdown。 Markdown 的电子邮件样式块引用和多段列表项目在您使用硬中断格式化它们时效果最好 - 并且看起来更好。

    此外,这还有一个额外的好处,就是避免文档不必要地变成 Markdown 和 HTML 的混合体。当 Markdown 查看器不可用时,例如在终端窗口中,这将保留可读性。

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

    【讨论】:

      【解决方案5】:

      Markdown 中的换行符是“行尾两个或多个空格”。

      【讨论】:

      • 请通过证实您所说的来改进您的答案(例如,文档中带有链接的 sn-p 将是完美的)。
      • 我在此基础上添加了另一个答案,因为两个空格被认为是正确的。
      • 我猜作者想要一种在一行中执行此操作的方法,例如在命令行上提示进行描述。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 2023-02-25
      相关资源
      最近更新 更多