Как пройтись по категориям и сообщениям в этой категории, используя жидкие шаблоны Jekyll? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть следующий макет:

---
layout: default
---
{% include header.html %}
<ul>
        {% for cat in site.categories %}
        <li>
                {% assign cat_name = cat[0] %}
                <div class="Projects">
                        <h1>{{ cat[0] }}</h1>
                        <h2>{{ cat_name }}</h2>
                        <ul>
                                {% for post in site.categories.cat_name %}
                                <li>
                                        <span class="date">{{ post.date | date: '%Y %b %d' }}</span> - <a href="{{ post.url }}">{{ post.title }}</a>
                                </li>
                                {% endfor %}
                        </ul>
                </div>
        </li>
        {% endfor %}
</ul>

Это пытается просмотреть категории моего сайта, а затем для каждого из них назначить имя категории как "имя_каталога", а затем для каждого из них оно использует {% for post in site.categories.cat_name %}, чтобы просмотреть сообщения в этой категории.

Это не работает.Строка:

<h2>{{ cat_name }}</h2>

Работает.Например, он показывает «мнение», которое является одной из категорий, поэтому я знаю, что задание сработалоИ {% for post in site.categories.opinion %} работает, например.Так что это просто передача этой переменной, которая не работает.Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Я должен был сделать {% for post in site.categories[cat_name] %} вместо {% for post in site.categories.cat_name %}

Это заставило меня работать.

0 голосов
/ 19 октября 2018

Я считаю, что вы хотите использовать capture для создания новой переменной, которая использует имя категории, как описано в документации по жидкости здесь: https://shopify.github.io/liquid/tags/variable/

{% capture s_c_cat_name%}site.categories.{{cat[0]}}{% endcapture %} ... {% for post in {{s_c_cat_name}} %}
...