如何在 11ty 中添加分类法?

How to add taxonomies in 11ty?

我想使用看起来有点像这样的 json 文件

[{
    "id": "foo",
    "url": "video",
    "topic": "Fancy foos"},
 {
    "id": "bars",
    "url": "video",
    "topic": "Naughty bars"
}]

作为几个按主题对条目进行分组的概览页面的来源(我猜这叫做分类法)。对此有什么好的解决方案?解析 json,将其与 js 分组并为每个主题创建一个自定义集合?如果是这样,这属于 _data 文件夹中的文件吗?

提前致谢!

我不是 100% 确定我得到了你想要的,但让我试着帮忙。首先,是的,将文件存储在您的 _data 文件夹中。假设您将其命名为 taxonomies.json。这意味着您的代码可以访问数组作为分类法。

接下来,如果您想根据这些数据构建页面,请查看 Create Pages from Data 的文档,其中描述了如何根据您的数据动态生成页面。每个分类法你可以有一个。例如:

---
pagination:
    data: taxonomies
    size: 1
    alias: tax
permalink: "topic/{{ tax.id | slug }}/"
---

content here

您的内容需要由当前分类法驱动。我假设您会有一种包含分类法的内容,例如帖子?如果是这样,您可以创建一个短代码或过滤器来扫描所有帖子和 returns 前面数据中具有特定分类法的帖子。例如,这是我如何获得与类别匹配的帖子:

{% assign posts = collections.posts | getByCategory: cat %}

getByCategory 是在 .eleventy.js 中定义的。这部分的细节实际上取决于您要显示的内容。