【发布时间】:2017-04-20 21:09:47
【问题描述】:
这个问题已经在javascript 和ruby 的上下文中被这个社区解决了,但是你如何使用 Jekyll / Liquid 模板来完成同样的事情呢?假设是这样的:
{% assign subarrays = array | split_items_by: 3 %}
【问题讨论】:
-
AFAIK 无法在 Liquid 中创建多维数组,是否可以通过 3 块来处理数组?
这个问题已经在javascript 和ruby 的上下文中被这个社区解决了,但是你如何使用 Jekyll / Liquid 模板来完成同样的事情呢?假设是这样的:
{% assign subarrays = array | split_items_by: 3 %}
【问题讨论】:
详细代码:
{% assign subArraySize = 3 %}
{% assign myArray = "one,two,three,four,five,six,seven" | split: "," %}
myArray = {{ myArray | inspect }}
{% assign multiArray = "" | split: "/" %}
multiArray = {{ multiArray | inspect }}
{% for element in myArray %}
looping in myArray - forloop.index = {{ forloop.index }}
{% assign reminder = forloop.index | modulo: subArraySize %}
reminder : {{ reminder | inspect }}
{% if reminder == 1 %}
create a new empty sub array
{% assign subArray = "" | split: "/" %}
subArray = {{ subArray | inspect }}
{% endif %}
push current element in subArray
{% assign subArray = subArray | push: element %}
subArray = {{ subArray | inspect }}
{% if reminder == 0 or forloop.last %}
push subArray in multiArray if subarray length is
{% assign multiArray = multiArray | push: subArray %}
multiArray = {{ multiArray | inspect }}
{% endif %}
{% endfor %}
{% for subArray in multiArray %}
subArray :{{ subArray | inspect }}
{% endfor %}
如果你已经有 ruby 代码可用,你可以写一个tag plugin
【讨论】: