我知道从液体模板创建数组的唯一方法是:
{% assign my_array = "one|two|three" | split: "|" %}
还有其他办法吗?
答案 0 :(得分:21)
<强> Frontmatter 强>
这是一个很好的解决方法,添加到文件的顶部:
---
my_array:
- one
- two
- three
---
然后将其用作:
{{ page.my_array }}
类似于site.data.my_array
或_config
下的网站范围_data/some_file.yml
。
更新Jekyll 3的布局
如果frontmatter是布局的,则需要使用:
{{ layout.style }}
答案 1 :(得分:8)
还有其他办法吗?
不,您的split
过滤器就是这样做的。
答案 2 :(得分:1)
如果你把数组放在页面的前端,比如:
---
my_array:
- one
- two
- three
---
我已经测试过你可以像这样简单地编写它:
---
my_array: [one,two,three]
my_prime: [5,7,11,13,17,19]
---
{{ page.my_array }}
和 {{ page.my_prime }}
都会正确输出。
答案 3 :(得分:0)
这是另一种方法,首先使用capture
作为将变量之间用换行符分隔的值分配给变量,然后使用assign
和一些过滤器将该变量转换为数组的友好方法:< / p>
{% capture my_array %}
one
two
three
{% endcapture %}
{% assign my_array = my_array | strip | newline_to_br | strip_newlines | split: "<br />" %}
过滤器执行以下操作:
strip
删除one
之前的前导空格和three
之后的尾随空格。newline_to_br
用<br />
标签替换换行符。strip_newlines
删除了可能多余的换行符。split
使用<br />
作为分隔符将字符串转换为数组。