Создаю свой первый сайт на Jekyll (использующий версию 4.0.0). Проблема в том, что переменные в Front Matter не распознаются.
HTML в _include (writing-post-featured-image.html)
<figure>
<img class="feat-img" src="{{ site.baseurl }}/assets/images/{{ include.images }}" alt="{{ include.alt | default: 'lorem ipsum' }}" />
<figcaption>{{ include.caption }}</figcaption>
</figure>
В _layout есть макет для текстовых страниц постов (writings-post.html)
{% include writing-post-featured-image.html image=post.featured-image alt=post.featured-image-alt %}
Наконец, в файле .md (под _posts) следующее Front Matter
layout: writings-post
title: my title
permalink: /writings/:title
featured-image: photo.jpg
featured-image-alt: about photo
caption: photo caption
Выход пуст
<figure>
<img class="feat-img" src="" alt="lorem ipsum" />
<figcaption></figcaption>
</figure>
Пожалуйста, помогите понять, почему так. Заранее спасибо.
2 ответа
Ваш синтаксис неверен.
1.) Поскольку вы передаете переменные со своей страницы, ваш тег include должен выглядеть следующим образом:
{% include writing-post-featured-image.html
image=page.featured-image
alt=page.featured-image-alt
caption=page.caption %}
2.) В вашем включении есть синтаксическая проблема с include.images
, которая должна быть include.image
.
Примечание : когда вы передаете существующие переменные (не вычисляемые), вы можете пропустить их передачу в ваше включение, поскольку внутри включения вы можете видеть переменные страницы.
{% include writing-post-featured-image.html %}
И ваше включает:
<figure>
<img class="feat-img"
src="{{ site.baseurl }}/assets/images/{{ page.featured-image }}"
alt="{{ page.featured-image | default: 'lorem ipsum' }}" />
<figcaption>{{ page.caption }}</figcaption>
</figure>
Правильный синтаксис на странице поста:
{% include writing-post-featured-image.html image=page.featured-image alt=page.featured-image-alt %}
Обратите внимание на синтаксис page.
вместо синтаксиса post.
. Однако, когда у вас есть цикл в макете, вы можете использовать это:
{% for post in site.posts %}
{% include writing-post-featured-image.html image=post.featured-image alt=post.featured-image-alt %}
{% endfor %}
Новые вопросы
html
HTML (HyperText Markup Language) является основным языком разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется один и часто в паре с [CSS] и [javascript].