在 Jekyll/Liquid 模板中使用变量访问数组
Accessing an array with a variable in Jekyll/Liquid templating
我的模板中有以下代码:
{% 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 %}
这让 return 什么都没做:{{ site.colors[color_index] }}
即使 num_colors
、color_index
和 site.colors
都会 return 正确的事情当我尝试打印它们时。
颜色在我的 _config.yml 中定义为:
colors: [light_blue, coral, yellow, teal, blue, deep_blue]
我正在使用插件来获取模数。基本上我只想为每个 post 附加一个 class ,当它超出颜色总数时将重新开始。这看起来很简单,所以我很困惑。
替换
{% capture num_colors %}{{ site.colors | size }}{% endcapture %}
{% capture color_index %}{{ forloop.index0 | mod: num_colors }}{% endcapture %}
作者:
{% assign num_colors = site.colors | size %}
{% assign color_index = forloop.index0 | modulo: num_colors %}
我的模板中有以下代码:
{% 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 %}
这让 return 什么都没做:{{ site.colors[color_index] }}
即使 num_colors
、color_index
和 site.colors
都会 return 正确的事情当我尝试打印它们时。
颜色在我的 _config.yml 中定义为:
colors: [light_blue, coral, yellow, teal, blue, deep_blue]
我正在使用插件来获取模数。基本上我只想为每个 post 附加一个 class ,当它超出颜色总数时将重新开始。这看起来很简单,所以我很困惑。
替换
{% capture num_colors %}{{ site.colors | size }}{% endcapture %}
{% capture color_index %}{{ forloop.index0 | mod: num_colors }}{% endcapture %}
作者:
{% assign num_colors = site.colors | size %}
{% assign color_index = forloop.index0 | modulo: num_colors %}