Yaml 主题目录中的文件夹\u数据未获取值

Yaml 主题目录中的文件夹\u数据未获取值,yaml,jekyll,liquid,Yaml,Jekyll,Liquid,我正在使用命令jekyllnewtheme-mytheme制作一个Jekyll主题。我想向这个主题添加翻译,所以我在根目录中创建了文件\u data/translations.yml。其内容如下: --- en: post: "Post" es: post: "Artículo" 我通过以下表达式获得信息: {% assign t = site.data.translations %} {{ t[site.lang]['post'] }} 只有当我将\u data/translat

我正在使用命令
jekyllnewtheme-mytheme
制作一个Jekyll主题。我想向这个主题添加翻译,所以我在根目录中创建了文件
\u data/translations.yml
。其内容如下:

---
en:
  post: "Post"
es:
  post: "Artículo"

我通过以下表达式获得信息:

{% assign t = site.data.translations %}
{{ t[site.lang]['post'] }}
只有当我将
\u data/translations.yml
文件移动到通过命令
Jekyll new mysite
创建的my Jekyll网站目录中时,此设置才有效

数据文件是否超出主题区域?我应该把这个yml文件放在另一个目录中吗?如果无法在主题领域中使用它,我想设置一个默认值:如何实现这一点


提前感谢。

从Jekyll 4.0开始,是的,主题宝石中的数据文件不会被读取。
您需要使用名为(由我编写)的插件


如果您计划为其他用户发布主题,我建议将插件作为运行时依赖项添加到主题的gempec中。否则,只需将插件添加到站点gem文件中的
:jekyll_plugins
组就足够了。

从jekyll 4.0开始,是的,主题gem中的数据文件不会被读取。
您需要使用名为(由我编写)的插件


如果您计划为其他用户发布主题,我建议将插件作为运行时依赖项添加到主题的gempec中。否则,只需将插件添加到站点GEM文件中的
:jekyll_plugins
组就足够了。

谢谢!这正是我需要的答案。我会在RubyGems上发布这个主题,所以是的,我会将你的插件作为运行时依赖项添加到主题的gemspec.BTW,@ashmaroli,是否也在页面上发生同样的事情?如果我想将404.md添加到主题宝石中,它将无法获取页面。Jekyll不会从主题宝石中加载页面。最好的解决方案是设计一个
error.html
布局,并要求您的用户在源代码处将该布局用于404和其他错误页面。谢谢!这正是我需要的答案。我会在RubyGems上发布这个主题,所以是的,我会将你的插件作为运行时依赖项添加到主题的gemspec.BTW,@ashmaroli,是否也在页面上发生同样的事情?如果我想将404.md添加到主题宝石中,它将无法获取页面。Jekyll不会从主题宝石中加载页面。最好的解决方案是设计一个
error.html
布局,并要求用户在源代码处将该布局用于404和其他错误页面。