也许这是一个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 %}
语法。没有错误;只是沉默的失败。
我在哪里失败?我的渲染过程的心理模型是完全错误的吗?谢谢!
答案 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 %}