如何从 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."]
。
我有一个有多个换行符的 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."]
。