【问题标题】:How merge two json data on Jekyll / Liquid如何在 Jekyll / Liquid 上合并两个 json 数据
【发布时间】:2016-04-29 15:30:25
【问题描述】:

我在文件夹 _data/i18n/

中有两个 .json 数据文件(en.json 和 en-br.json

我可以访问这些文件中的任何数据,例如:

site.data.i18n.var1

我喜欢做的是通过将第一个中的数据替换为第二个中的数据来合并这两个文件,前提是它们具有相同的索引。插件用完了。

en.json:

{
"var1", "1111",
"var2", "2222",
"var3", "3333",
"var4": "4444"
}

pt-br.json:

{
"var1", "5555",
"var4": "6666"
}

我希望的结果是:

myVariable.var1: 5555
myVariable.var2: 2222
myVariable.var3: 3333
myVariable.var4: 6666

我试过了:

{% assign txt = site.data.i18n.en %}
{% assign txt = site.data.i18n.pt-br %}

但是第二个覆盖第一个清除丢失的字段。

【问题讨论】:

    标签: json merge jekyll liquid


    【解决方案1】:

    您不能将两个哈希与液体合并。

    一种解决方案是使用 Jekyll 配置机制。这种机制允许您使用多个配置文件 (documentation) 运行 jekyll。

    通过运行jekyll serve --config _config.yml,_data/lang/en.yml,_data/lang/pt-br.yml,您将把en.yml 中的数据与pt-br.yml 中的数据合并''后面的文件覆盖前面的数据''。

    注意:您必须将文件格式化为 yaml 而不是 json。给en.yml的建议:

    lang:
      "var1": "1111"
      "var2": "2222"
      "var3": "3333"
      "var4": "4444"
    

    然后您的变量在site.lang.variableName 下可用。

    注意:如果使用github页面,则需要在本地生成并手动发布。

    【讨论】:

      猜你喜欢
      • 2020-11-18
      • 1970-01-01
      • 2021-05-27
      • 2022-12-14
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      相关资源
      最近更新 更多