0

我正在使用 Jekyll 框架并使用他们网站上的官方 Carousel 脚本(https://jekyllcodex.org/without-plugin/slider/),我正在努力弄清楚如何将名称传递给carousel.html 脚本,以便我可以使用相同的脚本设置多个轮播。我的目标是能够使用:

 {% include carousel.html name="CatImages" height="20" unit="%" duration="7" %}

它应该能够简单地从 carousel.yml 文件中接收图像,类似于:`

CatImages: 
  - /assets/img/cat1.png
  - /assets/img/cat2.png

我试图将字符串附加到变量名,它有效,但给了我一个稍微不同的输出——我无法弄清楚它的类型。结果变量来自

{{site.data.carousel.{{ include.name }}}}

返回{"CatImages"=>["/assets/img/cat1.png", "/assets/img/cat2.png"]},并且在运行 for 循环时,它将图像路径作为一个完整的字符串返回。例如,这个:

 {% for item in images %}
            {{item}}           
 {% endfor %}

返回:

images/assets/img/cat1.png/assets/img/cat2.png

但总的来说,我不明白这个变量是什么,我也无法通过谷歌搜索来弄清楚。我是 Liquid 模板的新手,但对于我的生活,我无法弄清楚 {""=>["",""]} 表示法是什么。

任何指示或提示将不胜感激!

4

1 回答 1

0

我想到了!现在很明显,我在路上学到了很多东西(就像我实际上使用的是 Liquid 而不是 Django)。

我的问题是我试图做的事情:

{{site.data.carousel.{{ include.name }}}}

但相反,我所要做的就是:

{{site.data.carousel[include.name]}}

于 2021-02-10T19:51:46.573 回答