Twitter bootstrap jekyll for loop don';t显示post';书名

Twitter bootstrap jekyll for loop don';t显示post';书名,twitter-bootstrap,jekyll,Twitter Bootstrap,Jekyll,我在\u post目录中有一些帖子,我需要使用Bootstrap(和使用Jekyll)在浏览器中以两列显示。这是我的代码: {% capture cant_element %}{{ site.posts.size | divided_by:2 }}{% endcapture %} {% for i in (0..cant_element) %} <div class="row"> <div class="col-md-6"> {% capture new_i

我在
\u post
目录中有一些帖子,我需要使用
Bootstrap
(和使用
Jekyll
)在浏览器中以两列显示。这是我的代码:

{% capture cant_element %}{{ site.posts.size | divided_by:2 }}{% endcapture %}
{% for i in (0..cant_element) %}
<div class="row">
  <div class="col-md-6">
    {% capture new_i %}{{ i | times:2 }}{% endcapture %}
    {{ new_i }}
    {{ site.posts[new_i].title }}
  </div>
  <div class="col-md-6">
    {% capture new_i_plus %}{{ i | times:2 | plus:1 }}{% endcapture %}
    {{ new_i_plus }}
    {{ site.posts[new_i_plus].title }}
  </div>
</div>
{% endfor %}
{%capture cant_element%}{{site.posts.size}除以:2}{%endcapture%}
{(0..cant_元素)%%中的i的%
{%capture new_i%}{{i|次:2}{%endcapture%}
{{new_i}}
{{site.posts[new_i].title}
{%capture new_i_plus%}{i|times:2 | plus:1}{%endcapture%}
{{new_i_plus}}
{{site.posts[new_i_plus].title}
{%endfor%}
我看不到(在浏览器中)变量
new\u I
new\u I\u plus
,但不显示文章标题(
site.posts[new\u I\u plus].title

为什么??谢谢

您混淆了
捕获
分配
标记。 Any
{%capture%}此处的任何代码{%endcapture%}
返回字符串

因此,当您试图通过其索引号获取元素时,如
{site.posts[new_i].title}
其中
new_i
是一个字符串,这就像执行
{site.posts['0'].title}
,它不会返回任何内容,因为
'0'
字符串不是索引

执行类似于
{%assign new|i=i | times:2%}
的赋值将返回一个
Fixnum
(一个数字)。您的
{{site.posts[new_i].title}
现在将转换为
{{site.posts[0].title}
,并将返回一些内容,因为
new_i
是一个数字和一个实索引

您的逻辑不会在所有帖子上循环(有时)
{{site.posts.size|u除以:2}}
将返回一个绝对值。如果你有3篇文章,这将返回1,你的循环将总是忽略最后一篇带有奇数索引的文章

完成事情的另一种方式 使用你可以做得更有效

{% for p in site.posts %}
    {% assign isEven = forloop.index0 | modulo: 2 %}
    {% if isEven == 0 %}
        <div class="row">
            <div class="col-md-6">
                <h2>{{ site.posts[forloop.index0].title }}</h2>
            </div>
            {% if forloop.rindex0 > 0 %}
            <div class="col-md-6">
                <h2>{{ site.posts[forloop.index].title }}</h2>
            </div>
            {% endif %}
        </div>
    {% else %}
        {% continue %}
    {% endif %}
{% endfor %}
{%p在site.posts%}
{%assign isEven=forloop.index0 |模:2%}
{%如果isEven==0%}
{{site.posts[forloop.index0].title}
{%if-forloop.rindex0>0%}
{{site.posts[forloop.index].title}
{%endif%}
{%else%}
{%continue%}
{%endif%}
{%endfor%}