【问题标题】:Issue with Data files importing into include file with for loop in Jekyll在 Jekyll 中使用 for 循环将数据文件导入包含文件的问题
【发布时间】:2021-02-07 22:25:41
【问题描述】:

所以我在一个客户网站上工作,并试图从我正在处理的数据文件中提取数据。我已经多次这样做了,但由于某种原因,这次它不想正常工作。

所以这是数据文件和它现在所在的结构:

- section: accordion
  tab:
    - info: Our Mission
      tab-index: headingOne
      pane: paneOne
      label: A
      content: Lorem ipsum dolor sit amet, consectetur adipisicing elit. Id harum, molestiae nemo. Delectus commodi magni ad ratione quisquam aliquid suscipit est, at molestias praesentium iste, vero.

然后这是我正在为包含调用它的代码:

{% assign buttons = site.data.accordions %}
<ul class="list-inline">
{% for tab in buttons.tab %}
<li class="list-inline-item">
    <a href="#" class="btn btn-secondary" data-toggle="collapse">
        {{ tab.info }}
    </a>
</li>
{% endfor %}
</ul>

有人可以向我解释这次代码可能出了什么问题吗?在过去的 4 个小时里,我一直在努力思考它,但没有什么对我有用。

【问题讨论】:

  • “令人沮丧的问题”和“这次它不想正常工作”不是我们可以帮助您的问题陈述。请在描述您的问题时更加具体。
  • 更新了标题,更好吗?而且你对代码可能有什么问题有任何想法吗?
  • 不,您的问题陈述仍不清楚。明确问题陈述的示例:“当我运行它时,它会打印错误消息'<...>',或者“当我运行它时,它会打印'A',但我期望'B'”。

标签: yaml jekyll liquid


【解决方案1】:

您的数据文件的结构不允许您访问 site.data.accordions.tab,因为您在 for 循环中拥有它。

作为测试,你可以调用你的作业来查看它们的输出:

{% assign buttons = site.data.accordions %}
{{ buttons }}

你应该看到输出为:

{"section"=>"accordion", "tab"=>[{"info"=>"Our Mission", "tab-index"=>"headingOne", "pane"=>"paneOne", "label"=>"A", "content"=>"Lorem ipsum dolor sit amet, consectetur adipisicing elit. Id harum, molestiae nemo. Delectus commodi magni ad ratione quisquam aliquid suscipit est, at molestias praesentium iste, vero."}]} 

为了如您所愿循环您的tab 数据,您需要将您的for 循环更改为:

{% for tab in buttons[0].tab %}

【讨论】:

  • 感谢您的帮助,这让我意识到我使用循环的方式与过去使用的循环不同。
猜你喜欢
  • 1970-01-01
  • 2018-08-06
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-04
  • 1970-01-01
相关资源
最近更新 更多