Jekyll 为液体模板中的变量指定数组文字

Jekyll 为液体模板中的变量指定数组文字,jekyll,liquid,Jekyll,Liquid,我知道从液体模板创建阵列的唯一方法是: {% assign my_array = "one|two|three" | split: "|" %} 还有别的办法吗 还有别的办法吗 不,您的拆分过滤器就是这样做的。Frontmatter 这是一个很好的解决方法,请添加到文件顶部: --- my_array: - one - two - three --- 然后将其用作: {{ page.my_array }} 类似于\u config上或\u data/some\u file.ym

我知道从液体模板创建阵列的唯一方法是:

{% assign my_array = "one|two|three" | split: "|" %}
还有别的办法吗

还有别的办法吗


不,您的
拆分
过滤器就是这样做的。

Frontmatter

这是一个很好的解决方法,请添加到文件顶部:

---
my_array:
  - one
  - two
  - three
---
然后将其用作:

{{ page.my_array }}
类似于
\u config
上或
\u data/some\u file.yml下的站点范围
site.data.my\u array

Jekyll 3版面更新

如果前面的内容是布局,则需要使用:

{{ layout.style }}

相反。请参阅:

另一种方法是,首先使用友好的方式将换行符分隔的值指定给变量,然后将该变量转换为带有和一些筛选器的数组:

{% capture my_array %}
one
two
three
{% endcapture %}

{% assign my_array = my_array | strip | newline_to_br | strip_newlines | split: "<br />" %}
{%capture my_array%}
一
二
三
{%endcapture%}
{%assign my_array=my_array | strip | newline | u to_br | strip | newlines | split:“
”}
过滤器执行以下操作:

  • 删除
    one
    之前的前导空格和
    three
    之后的尾随空格

  • 标记替换换行符
  • 删除可能的无关换行符
  • 使用

    作为分隔符,将字符串转换为数组

  • 如果将数组放在页面前面,请执行以下操作:

    ---
    my_array:
      - one
      - two
      - three
    ---
    
    我已经测试过你可以这样写:

    ---
    my_array: [one,two,three]
    my_prime: [5,7,11,13,17,19]
    ---
    

    {{page.my_array}}
    {{page.my_prime}}
    都将正确输出。

    正确。您必须使用
    split
    。Shopify docs on liquid array:另一个选项是创建一个名为“\u data/my\u array.yml”的文件,并将其内容放入“-1-2-3”中。然后,正如您所说,可以通过site.data.my_数组访问它。为什么禁止直接在模板中创建它?@Adi不清楚。通常,Liquid会被设计成允许运行不受信任的模板。