首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自yaml文件的数据(11 in /71)

来自yaml文件的数据(11 in /71)
EN

Stack Overflow用户
提问于 2020-06-29 13:21:43
回答 1查看 1K关注 0票数 5

在我的11个站点(起动机)上,我想解析数以百计的评论。这些评论存储在我的数据文件夹中,在一个名为评论作为单独的yaml-文件的文件夹中(命名如下:"entry-7128372832.yml")。每个yaml文件如下所示:

代码语言:javascript
复制
_id: 84494a00-b086-11ea-94d5-7f955bef1b4e
rating: 5
name: Name
review: "review body"
date: "2019-05-12T12:12:31.116Z"

我将自定义数据文件格式添加到11ty配置中,如文档中所述

代码语言:javascript
复制
const yaml = require("js-yaml");

module.exports = (eleventyConfig) => {
  
// Yaml
 eleventyConfig.addDataExtension("yaml", (contents) =>
        yaml.safeLoad(contents)
 );
};

但是,当我试图循环查看..njk文件中的数据时:

代码语言:javascript
复制
{% for review in reviews %}
    <p>{{ review.name }}</p>
    <p>{{ review.rating }}</p>
    <p>{{ review.review }}</p>
{% endfor %}

我似乎既没有访问数据的权限,也没有在控制台中获得错误。我在这里错过了什么?任何帮助都是非常感谢的。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-02 02:32:25

您需要更改所有_data/entry-*.yml .yaml 文件的文件扩展名以使用.yaml扩展名(注意附加的 a**).** )。

YAML团队推荐的官方文件扩展名是.yaml;然而,.yml在野外也很常见(请参阅这个问题以获得快速切换)。

编写自定义数据文件格式文档中的YAML支持代码示例是为了支持官方的.yaml扩展。

在11tyconfig的这一行中,"yaml"表示要支持的文字文件扩展名,而不仅仅是语言口语名称的名称:

代码语言:javascript
复制
eleventyConfig.addDataExtension("yaml", (contents) =>

如果您想在您的.yml目录中同时公开_data/.yaml文件,这将有效:

代码语言:javascript
复制
eleventyConfig.addDataExtension('yaml', contents => yaml.safeLoad(contents))
eleventyConfig.addDataExtension('yml', contents => yaml.safeLoad(contents))

请注意,上面的代码顺序会影响11.数据级联。如果.yaml.yml文件之间存在优先级冲突,.yml将获胜,因为扩展名将在后面添加。

同样重要的是:11tyJust 最近v0.10.0中添加了YAML支持,所以请确保您的版本为0.10.0或更高版本。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62639080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档