Jekyll(Liquid):在包含的模板中设置帖子状态

时间:2016-01-15 15:19:39

标签: jekyll liquid

也许这是一个Python程序员试图使用Ruby的情况,也许这是一个"feature" - 我不知道。对于我的生活,我无法弄清楚如何在渲染过程中为帖子设置状态。

我有_layout只需拨打include两次:

{% include templateA %}
{% include templateB %}

templateA遍历帖子并根据some_condition呈现部分

{% for post in site.posts %}
{% if some_condition %}
   <!-- Render the post -->
{% assign post.rendered = true %}
{% endif %}
{% endfor %}

templateB尝试遍历帖子并呈现其余

{% for post in site.posts %}
{% unless post.rendered %}
   <!-- Render the post -->
{% endif %}
{% endfor %}

这不能按预期工作。我也尝试了{% assign post[rendered] = true %}语法。没有错误;只是沉默的失败。

我在哪里失败?我的渲染过程的心理模型是完全错误的吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你的第一个差点就好了。 unless标记与if相反。 但是你不能改变杰基尔的变量,它们会被“冻结”。

所以,这可能有效:

<强> templateA

{% for post in site.posts %}
  {% if same_condition %}
    <!-- Render the post -->
  {% endif %}
{% endfor %}

使用相同的条件unless将呈现未由第一个循环呈现的帖子。

<强> templateB

{% for post in site.posts %}
  {% unless same_condition %}
    <!-- Render the post -->
  {% endunless %}
{% endfor %}