Передайте переменную в тег Jekyll - PullRequest
2 голосов
/ 25 октября 2019

IN SHORT

как получить эту переменную присвоения в теге for?

{% assign thisslider = include.whichslider %} // returns "slider1"
{% for item in thisslider %}

CONTEXT

На моем блоге я пытаюсь сделатьчтобы я мог размещать изображения для показа в статье с помощью ползунков. Он работает только для одного слайдера, но когда мне нужно более одного слайдера, я хочу иметь возможность указать, какой слайдер в пределах включаемого;

{% include content-slides.html whichslider="slider1" %}

В content-slides.htmlМне нужно получить параметр включения «slider1» и передать его в объявление цикла for, как показано ниже:

{% assign thisslider = include.whichslider %}
    {% for item in page.thisslider %}
        <p>each slide code in here</p>
    {% endfor %}
</div>

Таким образом, цикл for проходит через ползунок, определенный в параметре include (на который ссылаются в переднем посте))

post.md

---
layout: default
slider1:
  item1 :
    image : "xe-1.jpg"
    alt : "foo"
    caption : "this is the caption"
  item2 :
    image : "xe-2.jpg"
    alt : "foo"
    caption : "this is the caption for second slide"
slider2:
  item1 :
    image : "xe-3.jpg"
    alt : "foo"
    caption : "this is the caption"
  item2 :
    image : "xe-4.jpg"
    alt : "foo"
    caption : "this is the caption for second slide"
---
{% include content-slides.html whichslider="slider1" %}
{% include content-slides.html whichslider="slider2" %}

content-slides.html

{% assign thisslider = include.whichslider %}
{% for item in page.thisslider %}
   <p>each slide code in here</p>
{% endfor %}

1 Ответ

2 голосов
/ 26 октября 2019

Заменить точечную запись:

{% for item in page.thisslider %}

По скобочной записи

{% for item in page[thisslider] %}
...