【问题标题】:How can I use a Liquid-generated JSON as a "_data" site.data object in Jekyll?如何在 Jekyll 中使用 Liquid 生成的 JSON 作为“_data”site.data 对象?
【发布时间】:2020-12-03 15:18:37
【问题描述】:

使用 Liquid,我正在尝试构建一个 JSON 对象 (skills.json),其中包含来自我所有 Jekyll 帖子的数据。

当我根据https://jekyllrb.com/docs/datafiles/ 将此文件放在我的项目根目录中的_data 文件夹中时,尝试使用检查过滤器或控制台日志通过site.data.skills 访问数据会解析为空。

final output section of my Liquid json

当我将 skills.json 文件放在根目录下的 /assets/js/ 文件夹中时,我确实看到正确填充的 JSON 文件已按预期添加到我的 _site 文件夹中。将此 NEW 文件复制到根 _data 文件夹中会按预期成功填充到我的页面中,并且我可以使用 site.data.skills.KEY 访问所有数据。

json generated from assets folder at build time

有什么方法可以指定我的/assets/js/ 文件夹中生成的skills.json 是我的数据调用的来源?

或者,有没有办法在构建站点之前生成最终数据并自动将其移动到_data 文件夹?我愿意接受任何关于如何实现自动化的建议。作为警告,我对一般的 Web 开发还很陌生,所以任何参考或链接都会有很大的帮助。谢谢!

【问题讨论】:

    标签: json jekyll liquid


    【解决方案1】:

    在此之后,我认为问题在于网站的构建方式。 skills.json 文件在第一次构建时生成,然后当它被添加到 _data 文件夹时,该站点将再次构建以更新命中该数据的所有内容。通过这个迭代过程,我不知道是否可以同时生成新文件并将其用作源来更新依赖于同一通道中的数据的所有内容。

    就自动化而言,我的想法是使用 Ruby 插件将新生成的文件与 _data 文件夹进行比较并在源不同/较新时覆盖将是可行的方法,但我仍然开放任何建议!

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-02
      • 2017-06-14
      • 2021-01-24
      相关资源
      最近更新 更多