【问题标题】:Eleventy: Create "View all posts in collection" link十一:创建“查看收藏中的所有帖子”链接
【发布时间】:2021-11-17 00:14:51
【问题描述】:

我正在尝试在 Eleventy 中建立一个站点。该网站有两个集合中的博客帖子:A 和 B。当我阅读集合 A 中的帖子时,我希望在帖子内容之后有一个链接,上面写着“查看所有 A 帖子”。当我阅读收藏 B 中的帖子时,我希望看到“查看所有 B 帖子”链接。

博客文章共享相同的 _includes 模板 post.html。在那个模板中,我应该能够在 nunjucks 中创建一个类似这样的 if 语句:

{% if post in collections.A %}<a href="/a">View all A posts</a>
{% elif post in collections.B %}<a href="/b">View all B posts</a>
{% endif %}

虽然该代码 sn-p 不起作用。有什么想法吗?

【问题讨论】:

  • 如何在 A 或 B 中关联博客条目?
  • MD 文件位于不同的文件夹中。把它想象成在一个站点上有两个博客。导航包含指向每个博客存档页面的链接。

标签: if-statement nunjucks eleventy


【解决方案1】:

鉴于您的博客文章按文件夹分隔,您可以创建一个目录数据文件,为目录(A,B)指定一个值。像这样:

{
"blogtype":"a"
}

在您想要链接的帖子模板中,您可以检查blogtype 值来链接。

这有意义吗?需要明确的是,您可以使用过滤器执行“如果这篇文章在某某某收藏中”的逻辑,但我认为指定目录数据文件(可能)会更简单。

【讨论】:

  • 谢谢雷蒙德!
【解决方案2】:

我在那里得到答案https://www.webstoemp.com/blog/multilingual-sites-eleventy/

module.exports = function (eleventyConfig) {
  eleventyConfig.addCollection("posts_en", function (collection) {
    return collection.getFilteredByGlob("./src/en/posts/*.md");
  });
};

module.exports = function (eleventyConfig) {
  eleventyConfig.addCollection("posts_fr", function (collection) {
    return collection.getFilteredByGlob("./src/fr/posts/*.md");
  });
};

【讨论】:

    猜你喜欢
    • 2016-04-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多