gpt4 book ai didi

javascript - 来自 11ty/110 中 yaml 文件的数据

转载 作者:行者123 更新时间:2023-12-04 09:34:47 25 4
gpt4 key购买 nike

在我的 11ty 网站 (skeleventy-starter) 上,我想解析数百条评论。这些评论作为单独的 yaml 文件(命名如下:“entry-7128372832.yml”)存储在我的数据文件夹中名为评论的文件夹中。每个 yaml 文件如下所示:

_id: 84494a00-b086-11ea-94d5-7f955bef1b4e
rating: 5
name: Name
review: "review body"
date: "2019-05-12T12:12:31.116Z"
我将自定义数据文件格式添加到 11ty 配置中,如 documentation 中所述。 :
const yaml = require("js-yaml");

module.exports = (eleventyConfig) => {

// Yaml
eleventyConfig.addDataExtension("yaml", (contents) =>
yaml.safeLoad(contents)
);
};
但是,当我尝试遍历 .njk 文件中的评论数据时:
{% for review in reviews %}
<p>{{ review.name }}</p>
<p>{{ review.rating }}</p>
<p>{{ review.review }}</p>
{% endfor %}
我似乎既无法访问数据,也无法在控制台中收到错误。我在这里想念什么?任何帮助表示赞赏。谢谢!

最佳答案

您需要更改所有 _data/entry-*.yml 的文件扩展名使用 .yaml 的文件扩展名(注意额外的 a )。
YAML 团队推荐的官方文件扩展名是 .yaml ;但是,.yml在野外也很常见(见 this SO question 快速潜水)。
Custom Data File Format docs 中支持 YAML 的代码示例写来支持官方.yaml扩大。
在你的 11ty 配置的这一行 "yaml"表示要支持的文字文件扩展名,而不仅仅是语言的俗名:

eleventyConfig.addDataExtension("yaml", (contents) =>
如果你想同时公开 .yml.yaml _data/ 中的文件目录,这将起作用:
eleventyConfig.addDataExtension('yaml', contents => yaml.safeLoad(contents))
eleventyConfig.addDataExtension('yml', contents => yaml.safeLoad(contents))
请注意,上面的代码顺序会影响 11ty Data Cascade .如果 .yaml 之间存在优先级冲突和 .yml文件, .yml会赢,因为扩展是稍后添加的。
同样重要的是:11ty 只是 recentlyv0.10.0 中添加了 YAML 支持,因此请确保您使用的是 0.10.0 或更高版本。

关于javascript - 来自 11ty/110 中 yaml 文件的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62639080/

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