我最近发现了Zola和Tera(用于静态生成网站的 Rust 框架)并发现它们很棒。
我正在尝试过滤特定类别页面以显示在同一页面的某个部分中。为了说明,我写了一些这样的代码:
<div class="content">
{% block content %}
<div class="list-posts">
{% for page in section.pages %}
{% for key, taxonomy in page.taxonomies %}
{% if key == "categories" %}
{% set categories = taxonomy %}
{% for category in categories %}
{% if category == "rust" %}
<article>
<h3 class="post__title"><a href="{{ page.permalink }}">{{ page.title }}</a></h3>
</article>
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
</div>
{% endblock content %}
</div>
对于不同的类别,上面的代码应该有多个部分,例如“rust”、“java”等。
我编写了代码来解释我的问题,但这不是我想要的方式(并且当部分重复时它不起作用)。
加载部分/页面时如何过滤特定类别?
内容文件中的前端元数据是:
title = "A web page title"
[taxonomies]
categories = ["rust"]
如果您在上面看到我的示例代码,我必须首先通过哈希映射访问它,然后是数组,以便过滤所有“生锈”的页面。
下面的过滤器不起作用:
for page in section.pages | filter(attribute="taxonomies.categories", value="rust"