将数组下标值传递给Jekyll include

我正在定义YAML中的图像列表:

images:
 - image_1.png
 - image_2.png

然后我想将其用作:

{% include image.html path=page.images[1] %}

image.html包含的内容为

{% assign image = site.data.images[include.path] %}
<figure>
  <img src="/images/{{include.path}}">
  <figcaption>
    <div>{{image.title}}</div>
    <div class="byline">{{image.artist}}</div>
  </figcaption>
</figure>

这不起作用。如果我将page.images[1]分配给变量,则可以使用它。有办法使这项工作吗?

cen12 回答:将数组下标值传递给Jekyll include

因此,当我运行您的代码时,会收到以下错误消息:

  

液体异常:包含标记的语法无效:path = page.images [1]有效语法:index.html中的{%include file.ext param ='value'param2 ='value'%}

Jekyll似乎不喜欢包含中使用的括号符号。我发现Jekyll对此东西非常挑剔,只接受不带修饰符的字符串或液体变量(赋值,捕获)。不知道这是否是最好的解决方法,但是我总是在include之前设置一个额外的变量来解决它。

String s = "p=YSp%hZ5=YunnYDUuGxVxAeLCZuVvSfoutO8=";
String[] array = s.split("=");

如果将其粘贴到代码中,它将可以正常工作。显然,它不是包含图像的最简洁的语法,而是一种克服Jekyll怪癖的方法。如果您直接放置图像,则可以完全跳过前面的内容,并传递图像字符串{% assign image = page.images[1] %} {% include image.html path=image %}

本文链接:https://www.f2er.com/3060137.html

大家都在问