使用Jekyll / Liquid模板中的变量访问数组

时间:2016-03-29 17:32:20

标签: html ruby jekyll liquid

我的模板中有以下代码:

  {% for post in site.posts %}
    {% capture num_colors %}{{ site.colors | size }}{% endcapture %}
    {% capture color_index %}{{ forloop.index0 | mod: num_colors }}{% endcapture %}

    <a href="{{ post.url }}" class="post-box" rel="bookmark" title="{{ post.title }}">
      <div class="post-block {{ site.colors[color_index] }}">
        <div class="contents">
          <div class="cat-tag">
            {{ post.categories[0] | upcase }}
          </div>

          <h2>{{ post.title }}</h2>
        </div>
      </div>
    </a>
  {% endfor %}

这样就不会返回任何内容:{{ site.colors[color_index] }}即使num_colorscolor_indexsite.colors在我尝试打印时都会返回正确的内容。

颜色在我的_config.yml中定义为:

colors: [light_blue, coral, yellow, teal, blue, deep_blue]

我使用插件获取模数。基本上我只想为每个帖子附上一个课程,当它超出颜色总数时会重新开始。这看起来很简单,所以我很困惑。

1 个答案:

答案 0 :(得分:0)

替换

{% capture num_colors %}{{ site.colors | size }}{% endcapture %}
{% capture color_index %}{{ forloop.index0 | mod: num_colors }}{% endcapture %}

by:

{% assign num_colors = site.colors | size %}
{% assign color_index = forloop.index0 | modulo: num_colors %}