如何从 YAML 检查换行符

How to check for newline from YAML

我有一个有多个换行符的 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> 即使我不想要他们。

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

这就是诀窍:

# _config.yml

newline: >
  :

{{ site.newline | inspect }} 现在包含“:\n”,里面有一个真正的换行符。 请注意,冒号在这里是为了在前面的内容解析期间保留换行符。它可以替换为任何其他字符,但它是必需的。

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

中有一个干净的换行符

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