1

我想使用一个看起来像这样的 json 文件

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

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

提前谢谢!

4

1 回答 1

0

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

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

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

content here

您的内容需要由当前的分类法驱动。我假设您将拥有一种包含分类的内容,例如帖子?如果是这样,您可以创建一个短代码或过滤器来扫描所有帖子并在前端数据中返回具有特定分类的帖子。例如,以下是我获取与类别匹配的帖子的方式:

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

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

于 2021-04-12T12:59:42.573 回答