Item.Image не отображается в Jekyll - PullRequest
1 голос
/ 06 октября 2019

У меня есть куча сообщений из портфолио в / _works /, и внешний вид выглядит примерно так:

title: "Rock in Rio Lisbon 2018"
date: July, 2018
image: "/assets/images/work/rock-in-rio-lisbon-2018.jpg"
categories:
  - Intro
slides:
  - title: "Rock in Rio Lisbon 2018 Headliner Show for Bruno Mars, Katy Perry, Muse & The Killers"
    id: "O-rZ6IFnv9g"

override: true

На домашней странице я использую Slides.ID для автоматического захвата миниатюры видео YouTube,Если передний план включает Override: true, он должен отображать то, что я определил как изображение. Вот что у меня есть:

{% assign works = site.works | reverse %}
{% for item in works limit:9 %}
<li class="{% cycle 'wide','','','','','','','','' %}">
<a href='{{ site.url }}{{ item.url }}'>


    {% if item.override %}
    {% for item in item.slides limit:1 %}
        <img alt="A frame from a video of {{ item.title }}" loading="lazy" src="{{ site.url }}{{ item.image }}" />
    {% endfor %}
    {% else %}
    {% for item in item.slides limit:1 %}
        <img alt="A frame from a video of {{ item.title }}" loading="lazy" src="https://img.youtube.com/vi/{{ item.id }}/sddefault.jpg" />
    {% endfor %}
    {% endif %}

    <div class='overlay'>
    <div class='thumb-info'>
        <h3>{{ item.title }}</h3>
        <p>{{ item.categories | sort |  join:" • " | escape }}</p>
        <p>{{ item.image }}</p>
    </div>
    </div>
</a>
</li>      
{% endfor %}

Когда Jekyll компилируется, {{ item.image }} не работает ... однако, если я поменяю его местами с {{ item.title }}, это сработает. Есть идеи, почему это происходит?

1 Ответ

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

Вы повторно используете переменную 'item' в слайдах, которая перезаписывает ее. Переименуйте переменную 'item' в 'slide', когда вы просматриваете слайды, например:

{% assign works = site.works | reverse %}
{% for item in works limit:9 %}
<li class="{% cycle 'wide','','','','','','','','' %}">
<a href='{{ site.url }}{{ item.url }}'>


    {% if item.override %}
    {% for slide in item.slides limit:1 %}
        <img alt="A frame from a video of {{ slide.title }}" loading="lazy" src="{{ site.url }}{{ slide.image }}" />
    {% endfor %}
    {% else %}
    {% for slide in item.slides limit:1 %}
        <img alt="A frame from a video of {{ slide.title }}" loading="lazy" src="https://img.youtube.com/vi/{{ slide.id }}/sddefault.jpg" />
    {% endfor %}
    {% endif %}

    <div class='overlay'>
    <div class='thumb-info'>
        <h3>{{ item.title }}</h3>
        <p>{{ item.categories | sort |  join:" • " | escape }}</p>
        <p>{{ item.image }}</p>
    </div>
    </div>
</a>
</li>      
{% endfor %}
...