Проблема
У меня есть div
на моем сайте Jekyll, где я хотел бы отображать данные, сгенерированные из _data/book-data.yml
, например:
- name: johnson-everything-under
title: Everything Under
author: Daisy Johnson
publisher: Faber & Faber
pub-date: 12/12/2012
- name: johnson-train-dreams
title: Train Dreams
author: Denis Johsnon
publisher: Granta
pub-date: 01/01/2001
Я пытаюсь найти способ отобразить данные, которые соответствуют соответствующей странице (каждая запись книги имеет свою страницу), и я подумал, что это возможно, если клавиша name
соответствует page.url
или некоторая другая переменная страницы.
Что я пробовал
На рабочей странице у меня есть include
, который содержит следующий HTML:
<div class="book-meta">
{% if page.category == "reviews"%}
<div class="book-thumbnail">
<img class="post-thumbnail-lg" src="{{ site.baseurl }}/assets/images/{{ page.thumbnail }}" alt="{{ page.thumbnail }}">
</div>
{% for book in site.data.book-data %}
<div class="book-details">
<ul class="book-meta-list">
<li class="book-meta-item"><p><a href="#">{{ book.author }}</a></p></li>
<li class="book-meta-item"><p><em>{{ book.title }}</em></p></li>
<li class="book-meta-item"><p>{{ book.publisher }}</p></li>
<li class="book-meta-item"><p>{{ book.pub-date }}</p></li>
</ul>
</div>
{% endfor %}
{% endif %}
</div>
CSS не важен, но так как он в настоящее время выводит приведенный выше HTML:
Желаемый вывод
Как видите, выходные данные содержат оба блока метаданных из файла .yml
. Я хотел бы найти способ, чтобы отображался только соответствующий блок данных (первый блок в данном случае):
Потенциальное решение (я)
Я подумал, что может быть способ сопоставления page.variable
с именем блока YAML, чтобы выводились только нужные данные книги. Что-то вроде:
{% assign url_substring = page.url | split, '/' | last %}
// url_substring = johnson-everything-under
{% for book in site.data.book-data %}
{% if url_substring == book.name %}
// = true
<p>{{ book.title }}<p>
{% endif %}
{% endfor %}
Кроме того факта, что я не могу заставить это работать должным образом, я также вижу, что жидкостный тег {{ book.title }}
не может определить, какой заголовок книги вывести, даже если page.url
соответствует.
Я не уверен, что нахожусь на правильном пути, поэтому, если у кого-то есть какие-либо другие предложения о том, как это может быть достигнуто, я хотел бы услышать это. Заранее спасибо.