gpt4 book ai didi

Jekyll根据名称获取特定的_data数据

转载 作者:行者123 更新时间:2023-12-02 06:33:36 25 4
gpt4 key购买 nike

我有一个数据文件夹结构:

_data/footer/1.yml_data/footer/2.yml

我想要做的是在模板内,基于 front Matter 变量,选择这些文件之一并返回其中包含的数据。

如果我这样做:site.data.footer.1 它返回带有 1.yml 的数据。如果我尝试执行 site.data.footer.{{page.footer}} 它不会返回任何内容,即使前面的内容将页脚变量设置为 1,如下所示:

---
footer: 1
---
{% assign foot_id = page.footer %}
{{foot_id}}
{% assign stuff = site.data.footer.{{foot_id}} %}
{{stuff}}
在这种情况下,

stuff 将为空白。这是执行此操作的正确方法吗?出什么问题了?

最佳答案

如果我们查看您的数据:

site.data.footer = {"1"=>{"variable"=>"one"}, "2"=>{"variable"=>"two"}}

我们有一个哈希,键是字符串。

我们可以这样访问我们的数据:

{{ site.data.footer.1 }} => {"variable"=>"one"}
or
{{ site.data.footer["1"] }} => {"variable"=>"one"}

请注意,括号表示法将字符串作为键。如果您尝试使用整数,它不会返回任何内容 {{ site.data.footer[1] }} => null

如果我们想使用page变量,我们需要它是一个字符串。它可以是:

---
# a string in the front matter
footer: "1"
---

{{ site.data.footer[page.footer] }} => {"variable"=>"one"}

或将整数转换为字符串

---
# a string in the front matter
footer: 1
---

Transform an integer to a string by adding it an empty string
{% assign foot_id = page.footer | append: "" %}

{{ site.data.footer[foot_id] }} => {"variable"=>"one"}

注意:您还可以将字符串转换为整数,如下所示:

{% assign my_integer = "1" | plus: 0 %}
{{ my_integer | inspect }} => 1 but not "1"

关于Jekyll根据名称获取特定的_data数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com