如何检查YAML的换行符

时间:2016-09-12 04:58:36

标签: jekyll

我有一个有多个换行符的YAML文件:

key: |
    some stuff
    some more stuff
    ...
    etc.

我将其读入我的.html文件并访问它。我想将其分解,以便每次读取新行时,都会创建一个新段落:

<p>some stuff</p>
<p>some more stuff</p>
...
<p>etc.</p>

我正在尝试通过过滤器{{ key | split: '\n' }}运行它,但这不起作用(它正在搜索字符\和n而不是实际的CRLF。)我发现它通过一个inspect过滤器转换为可解析的\ n,但这似乎是一种hacky方式来做到这一点。还有更好的方法吗?

提前致谢。

P.S。我相信将我的.html切换为.markdown可能会解决此问题,但如果可能的话,我宁愿不切换,因为即使我不想要它也会强迫我<p><div>它们。

1 个答案:

答案 0 :(得分:1)

\n是一个正则表达式换行符。可悲的是,液体并不知道​​这一点。 但我们可以创造一种液体能够理解的东西:真正的换行。

这就是诀窍:

# _config.yml

newline: >
  :

{{ site.newline | inspect }}现在包含“:\ n ”,其中包含真实的换行符。 请注意,冒号在此处用于在前端解析期间保留换行符。它可以被任何其他char替换,但它是必需的。

完整标记为{% assign newline = site.newline | remove: ":" %}。我们现在在var。

中有一个干净的换行符

我们现在可以使用{% assign keyArray = page.key | split: newline %}拆分我们的多行变量,然后得到{{ keyArray | inspect }} output>> ["some stuff", "some more stuff", "...", "etc."]