Жидкий шаблон - невозможно изменить скрипт Jekyll Carousel

Я использую платформу 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, но, хоть убей, не могу понять, что такое нотация {= ›[,]}.

Будем очень признательны за любые указатели или подсказки!


person Christopher Kornosky    schedule 07.02.2021    source источник
comment
Что произойдет, если вы вызовете {{ include.name }} внутри цикла for? Он должен вернуть CatImages. Не так ли?   -  person Brad West    schedule 10.02.2021
comment
Оно делает! Он выводит изображения CatImages, и это здорово, и именно так я могу получить (странный) тип, который выводит {"CatImages"=>["/assets/img/cat1.png", "/assets/img/cat2.png"]}. Возможно, {{site.data.carousel.{{ include.name }}}} неправильный способ получить список путей к изображениям?   -  person Christopher Kornosky    schedule 10.02.2021


Ответы (1)


Я понял! Теперь это довольно очевидно, и я многому научился в пути (например, на самом деле я использую Liquid, а не Django).

Мои проблемы заключались в том, что я пытался сделать:

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

Но вместо этого все, что мне нужно было сделать, это:

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

person Christopher Kornosky    schedule 10.02.2021