【问题标题】:Folder _data in theme directory does not get the values主题目录中的文件夹 _data 未获取值
【发布时间】:2019-09-14 19:58:09
【问题描述】:

我正在使用命令jekyll new-theme mytheme 制作 Jekyll 主题。我想为这个主题添加翻译,所以我在根目录中创建了文件_data/translations.yml。这是它的内容:

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

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

{% assign t = site.data.translations %}
{{ t[site.lang]['post'] }}

此设置仅在我将 _data/translations.yml 文件移动到我的 Jekyll 网站目录(通过命令 jekyll new mysite 创建)时才有效。

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

提前致谢。

【问题讨论】:

    标签: yaml jekyll liquid


    【解决方案1】:

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

    如果您打算为其他用户发布主题,我建议将该插件作为运行时依赖项添加到主题的 gemspec 中。否则,只需将插件添加到站点 Gemfile 中的 :jekyll_plugins 组即可。

    【讨论】:

    • 谢谢!这正是我需要的答案。我将在 RubyGems 上发布这个主题,所以是的,我会将您的插件作为运行时依赖项添加到主题的 gemspec 中。
    • 顺便说一句,@ashmaroli,页面是否发生了同样的情况?如果我想将 404.md 添加到 theme-gem,它不会获取页面。
    • Jekyll 不会从主题宝石中加载 页面。最好的解决方案是设计一个error.html 布局,并要求您的用户在源代码中为他们的 404 和其他错误页面使用该布局。
    猜你喜欢
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2012-07-23
    相关资源
    最近更新 更多