带有嵌套元素的Jekyll YAML文件

Rom*_*ain 2 yaml liquid jekyll

我想访问我的"benefit.yml"文件中的嵌套元素,并使用循环调用这些元素.但它不起作用,也没有任何表现.

这里是我的"benefit.yml":

locales:
  en:
    title: "Games"
    detail: "To relax and take breaks during the day, we play football, table tennis and Xbox"
    icon: benefit1.png
  fr:
    title: "Jeux"
    detail: "To relax and take breaks during the day, we play football, table tennis and Xbox"
    icon: benefit1.png

  en:
    title: "Drink"
    detail: "The fridge is full of beer cans and Coca-Cola, Ice Tea and coffee. You can drink whatever makes you happy, all day!"
    icon: benefit2.png
  fr:
    title: "Boissons"
    detail: "The fridge is full of beer cans and Coca-Cola, Ice Tea and coffee. You can drink whatever makes you happy, all day!"
    icon: benefit2.png
Run Code Online (Sandbox Code Playgroud)

这是我的循环:

  {% for benefit in site.data.benefits.locales.en %}
    <div class="s-column6">
      <div class="kiwup-benefit pb1 mb1">
        <img src="/image/benefit/{{ benefit.icon }}" alt="kiwuper">
        <div class="kiwup-benefit-info">
          <h3 class="h4-like text-dark">{{ benefit.title }}</h3>
          <p>{{ benefit.detail }}</p>
        </div>
      </div>
    </div>
  {% endfor %}
Run Code Online (Sandbox Code Playgroud)

Dav*_*uel 6

1.您的DATAS文件是错误的,你有重叠的项目locales.enlocales.fr.正确的嵌套可以是:

语言环境:

games:
  en:
    title: "Games"
    detail: "To relax and take breaks during the day, we play football, table tennis and Xbox"
    icon: benefit1.png
  fr:
    title: "Jeux"
    detail: "To relax and take breaks during the day, we play football, table tennis and Xbox"
    icon: benefit1.png

drink:
  en:
    title: "Drink"
    detail: "The fridge is full of beer cans and Coca-Cola, Ice Tea and coffee. You can drink whatever makes you happy, all day!"
    icon: benefit2.png
  fr:
    title: "Boissons"
    detail: "The fridge is full of beer cans and Coca-Cola, Ice Tea and coffee. You can drink whatever makes you happy, all day!"
    icon: benefit2.png
Run Code Online (Sandbox Code Playgroud)

2.数据文件名

如果您的数据文件名是benefit.yml,则可以访问您的数据site.data.benefit.locales.drink

你的循环错了

然后循环给你类似的东西:

benefit = Array
["en",{"title"=>"Drink", "detail"=>"The fridg...!", "icon"=>"benefit2.png"}]
Run Code Online (Sandbox Code Playgroud)

在哪里benefit[0] = enbenefit[1] = hash{"title"=>"Drink", "detail"=>"The fridg...!", "icon"=>"benefit2.png"}

如果您想在这里访问数据,您可以这样做 {{ benefit[1].title }}

完整的games语言环境代码:

{% for benefit in site.data.benefit.locales.games %}
<div class="s-column6">
  <div class="kiwup-benefit pb1 mb1">
    <img src="/image/benefit/{{ benefit[1].icon }}" alt="kiwuper">
    <div class="kiwup-benefit-info">
      <h3 class="h4-like text-dark">{{ benefit[1].title }}</h3>
      <p>{{ benefit[1].detail }}</p>
    </div>
  </div>
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)