Jekyll - 带有换行符的 Markdown 不会在 HTML 中呈现

ras*_*hok 3 markdown jekyll

Jekyll 3.0.1不呈现单个换行符(换行符)。它忽略它。令人惊讶的是,它正在按原样渲染双换行。我使用JekyllUbuntu 16.04。有人可以帮我解决这种行为吗?

输入

在此处输入图片说明

渲染

在此处输入图片说明

Joo*_*stS 8

好问题。有(一如既往)多种方法可以做到这一点。每种解决方案都有其优点和缺点。选择最适合您的风格或项目的一种。


解决方案 1:换行到 br

这是迄今为止最优雅的解决方案。它就像 PHP 一样工作。你可以写:

<div id="content">{{ content | newline_to_br }}</div>
Run Code Online (Sandbox Code Playgroud)

并添加此 CSS:

#content br {display: none;}
#content p br {display: inline;}
Run Code Online (Sandbox Code Playgroud)

它会稍微污染您的输出(在段落标签之外有未渲染的中断),但它完全符合您的要求。它易于阅读,不需要对您的内容/降价进行任何更改。


解决方案2:每行后两个空格

行尾的两个空格被<br>输出中的 a 替换。我不喜欢在代码编辑器中很难看到这些空格,但这是真正的降价方式。来源


解决方案 3:手动添加 HTML 中断

由于HTML是允许在降价,你可以手动编写HTML休息,就像这样:<br>。这些中断编写起来很麻烦,并且它们会用 HTML 污染您的降价,但它们有效。

  • 我喜欢解决方案 2,尽管它在编辑器上看起来很丑。感谢您的回答。 (3认同)

Dav*_*olf 6

如果您使用 Kramdown(Jekylls 默认 Markdown 渲染器),请将以下内容添加到您的_config.yml

kramdown:
  hard_wrap: true
Run Code Online (Sandbox Code Playgroud)

hard_wrap - 按字面解释换行符

Jekyll 文档