4

这应该非常容易,但要么我没有正确阅读文档,要么 Kramdown 不支持这一点。我正在尝试将命令行输出放在博客文章中,我想为此使用块引用。但是,kramdown 坚持将所有内容放在同一行的同一块引用中。

我可以在块引用的每一行之间放置一个空格,但这并不是输出的真实表示。如何创建块引用,但每行实际上都在单独的行上,每行之间没有空格。我想我正在寻找更多“预格式化”输出,但我没有看到 kramdown 支持它。

4

2 回答 2

7

kramdown 坚持将所有内容放在同一行的同一块引用中

这不是 kramdown,这是 HTML 的正常行为。使用以下降价:

> One
> Two
> Three

kramdown 将创建这个 HTML,所有的行都是分开的:

<blockquote>
  <p>One
Two
Three</p>
</blockquote>

当您查看此内容时,浏览器会将所有运行的空格折叠到一个空格中,因此它将全部显示在同一行:

一二三

最简单的解决方案是使用代码块而不是块引用,使用缩进或像这样的围栏代码块:

~~~
One
Two
Three
~~~

这将生成 HTML:

<pre><code>One
Two
Three
</code></pre>

标签的默认样式pre将导致行是分开的:

One
Two
Three

如果你真的想在这里使用块引用,有几个可能的解决方案。您可以在每行的末尾添加两个空格来创建一个<br>元素来强制换行:

(这里我使用下划线来演示空格应该放在哪里。你需要使用实际的空格才能工作。)

> One__
> Two__
> Three__

这将产生:

<blockquote>
  <p>One<br />
Two<br />
Three</p>
</blockquote>

另一种可能的解决方案是将适当的样式应用于块引用。Kramdown 允许添加classid属性,因此您可以具体说明哪些块获得样式:

<style>
.cmd-line > p {
  white-space: pre;
}
</style>

Hello

{: .cmd-line }
> One
> Two
> Three

white-space: pre样式将导致源中的换行符出现在呈现的 HTML 中。

于 2016-05-12T16:34:28.533 回答
0

只需使用硬换行符


二三
_

于 2021-12-09T09:41:32.720 回答