所以我有一些来自 JSON API 的书籍数据。对于API中的一些项目,我在11ty创建了一个页面。我正在尝试列出 API 中的项目,并检查每个项目的slug
字段是否与fileSlug
我的本地页面集合中的 a 匹配。如果是这样,那么我可以输出到内容页面的链接;否则,只需从 API 输出书名。
这是我在 Nunjucks 中所拥有的:
{# Loop through book entries in API #}
{% for apiBook in booksApi %}
{{ apiBook.title }}:
{# Loop through my local book pages collection #}
{% for localBook in collections.books %}
{# Check if any slugs in the local collection match slugs in API #}
{% if localBook.fileSlug == apiBook.slug %}
Item exists locally.
{% else %}
Item only exists on API.
{% endif %}
{% endfor %}
<br>
{% endfor %}
我不明白的是,这对于 API 中的每个项目都会返回两次......对于 11ty 中没有相应页面的项目,它会返回Item only exists on API. Item only exists on API.
. 对于确实有相应页面的项目,它返回Item exists locally. Item only exists on API.
.
任何想法为什么它总是为else
声明返回 true?
在中创建自定义过滤器.eleventy.js
:
eleventyConfig.addFilter("matchLocalBook", (apiBook, localBooks) => {
return localBooks.find(element => element.fileSlug === apiBook.slug);
});