Jekyll 如何在液体中对集合进行分组?
我有一个Jekyll应用程序(使用Liquid),我想知道如何在Liquid中将一组项目组合成一小部分集合 例如,假设我有这个数组:Jekyll 如何在液体中对集合进行分组?,jekyll,liquid,Jekyll,Liquid,我有一个Jekyll应用程序(使用Liquid),我想知道如何在Liquid中将一组项目组合成一小部分集合 例如,假设我有这个数组: fruits = ['apples', 'oranges', 'bananas', 'pears', 'grapes'] 在液体页面中,我真正想做的是: fruit_groups = [['apples', 'oranges'], ['bananas', 'pears'], ['grapes', null]] 例如,RubyonRails可以通过附加到枚举表的
fruits = ['apples', 'oranges', 'bananas', 'pears', 'grapes']
在液体页面中,我真正想做的是:
fruit_groups = [['apples', 'oranges'], ['bananas', 'pears'], ['grapes', null]]
例如,RubyonRails可以通过附加到枚举表的.group\u方法来实现这一点
我能用液体做这个吗
用例:我有一个很大的项目集合,但我需要将它们转换为
元素的列。所以,如果我有三列,我需要得到三个子集合
谢谢 这并不能直接回答您的问题,但我不确定您是否愿意做您描述的事情(我很确定您不能)——Liquid是一个模板系统,而不是一种成熟的编程语言。我怀疑您可以使用for循环和cycle的一些功能来实现最终目标:
例如:
{水果中的水果%}
{%capture pattern%}{%cycle'奇数类','偶数类'%}{%endcapture%}
- {{{fruit}
{%endfor%}
或
{水果中的水果%}
{%capture pattern%}{%cycle'奇数','偶数'}{%endcapture%}
{%if pattern=='奇数'%}
- {{水果}
{%endif%}
{%endfor%}
{%用于水果中的项目%}
{%capture pattern%}{%cycle'奇数','偶数'}{%endcapture%}
{%if pattern=='偶数'%}
- {{水果}
{%endif%}
{%endfor%}
如果有三列,那么循环中只有三个步骤,If语句中有三个方向
如果所有这些都失败了,你可以编写一个插件(用Ruby),在数据到达模板层之前对其进行重新构造,但我怀疑这可能会有点过分
<ul>
{% for fruit in fruits %}
{% capture pattern %}{% cycle 'odd_class', 'even_class' %}{% endcapture %}
<li class={{ pattern }}>{{ fruit }}</li>
{% endfor %}
</ul>
<ul class="odd">
{% for fruit in fruits %}
{% capture pattern %}{% cycle 'odd', 'even' %}{% endcapture %}
{% if pattern == 'odd' %}
<li>{{ fruit }}</li>
{% endif%}
{% endfor %}
</ul>
<ul class="even">
{% for item in fruits %}
{% capture pattern %}{% cycle 'odd', 'even' %}{% endcapture %}
{% if pattern == 'even' %}
<li>{{ fruit }}</li>
{% endif%}
{% endfor %}
</ul>