我有一个有多个换行符的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>
它们。
答案 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."]
。