gpt4 book ai didi

arrays - 如何从集合中排除草稿?液体/10

转载 作者:行者123 更新时间:2023-12-04 08:35:07 26 4
gpt4 key购买 nike

我是第一次用 Eleventy 建立一个网站,尽管我已经和 Liquid 合作了一段时间,但我还是无法破解这个网站。
我想尽可能地简化架构。这就是为什么我将我的集合分配给变量的原因:

{% assign blogposts = collections.posts %}
所以稍后在网站上我可以写一个非常简短和甜蜜的:
{% for post in blogposts %}...{% endfor %} 
而不是在文件中分配它上方的集合。
现在这是我的问题:
我很想过滤掉标记为草稿的帖子(在前面使用草稿:true)。我以为我可以像其中之一那样做(我试过......)
{% assign blogposts = collections.posts | draft: false %}
{% assign blogposts = collections.posts | where: draft, false %}
{% assign blogposts = collections.posts | where: data.draft, false %}
{% assign blogposts = collections.posts_nl | where: "draft", "false" %}
有谁知道我怎么能做到这一点?不幸的是,我觉得 Eleventy 中使用的液体版本较旧,而且我能找到的文档似乎从未解决我如何做到这一点。我真的很感激一些帮助! :)

最佳答案

您可以使用 configuration API to create a filtered collection 代替过滤模板中的集合。在您的 .eleventy.js文件。这应该有效:

// .eleventy.js
eleventyConfig.addCollection('posts', collections => {
// get all posts by tag 'post'
return collections.getFilteredByTag('post')
// exclude all drafts
.filter(post => !Boolean(post.data.draft))
});
如果您同时需要过滤后的帖子列表和完整列表,您还可以使用不同的别名:
// .eleventy.js
eleventyConfig.addCollection('posts', collections => {
return collections.getFilteredByTag('post');
});
eleventyConfig.addCollection('published_posts', collections => {
// get all posts by tag 'post'
return collections.getFilteredByTag('post')
// exclude all drafts
.filter(post => !Boolean(post.data.draft))
});

关于arrays - 如何从集合中排除草稿?液体/10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64839241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com