我的settings.html
中有一个字段,我希望用户输入由两个换行符分隔的多个段落。我想将这个输入字符串拆分为一个字符串数组,每个字符串代表一个段落。
我想做这样的事情:
{% assign paragraphs = settings.intro | split: '\n' %}
{% for paragraph in paragraphs %}
<p>
{{ paragraph }}
</p>
{% endfor %}
我似乎无法弄清楚如何在Liquid中引用换行符。我该怎么做呢?有什么工作吗?
答案 0 :(得分:26)
试试这个:
{% assign paragraphs = settings.intro | newline_to_br | split: '<br />' %}
{% for paragraph in paragraphs %}<p>{{ paragraph }}</p>{% endfor %}
答案 1 :(得分:0)
@ josh-browns的答案使我了解了很多,对于大多数实例来说可能就足够了。但是,我有一些空白的段落来自用户生成的双行。
DenilsonSáMaia对strip_newlines的评论对我的降价处理器没有帮助,因此我在输出段落之前手动检查了每一行是否为空。
{% for paragraph in paragraphs %}
{% assign paragraph-length = paragraph | number_of_words %}
{% if paragraph-length > 0 %}
<p>{{ paragraph }}</p>
IMAGE HERE
{% endif %}
{% endfor %}
这不能解决数组中的空白,因为我遍历数组以创建一个只有有效内容的新数组。如果有一个适用于数组的过滤器,而不仅仅是哈希,那将是非常好的。
{% assign all-paragraphs = content | strip | newline_to_br | strip_newlines | split: "<br />" %}
{% assign paragraphs = site.emptyArray %}
{% for paragraph in all-paragraphs %}
{% if paragraph and paragraph != "" and paragraph != site.emptyArray %}
{% assign paragraphs = paragraphs | push: paragraph %}
{% endif %}
{% endfor %}