Показать сообщения за:

царапая мою голову над этим - помогите оценить.

Я хочу отобразить список всех моих сообщений Jekyll, организованных по категориям. Я знаю, что строка 3 неверна, но я не могу понять, что это должно быть. Есть идеи? Спасибо!

{% for category in site.categories %}
    <h3>{{ category | first }}</h3>
    {% for post in page.categories.category %}
      {{ post.title }}<br>
    {% endfor %}            
{% endfor %}

Ответ 1

Получил! Необходим цикл промежуточных сообщений, прежде чем перечислять отдельные сообщения.

{% for category in site.categories %}
  <li><a name="{{ category | first }}">{{ category | first }}</a>
    <ul>
    {% for posts in category %}
      {% for post in posts %}
        <li><a href="{{ post.url }}">{{ post.title }}</a></li>
      {% endfor %}
    {% endfor %}
    </ul>
  </li>
{% endfor %}

Ответ 2

fyi, если кто-то хочет просто перечислить сообщения в одной категории, это работает (отличается от предыдущего примера, поскольку категория возвращает список сообщений...

<p>Posts in category "basic" are:</p>

<ul>
  {% for post in site.categories.basic %}
    {% if post.url %}
        <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endif %}
  {% endfor %}
</ul>

Ответ 3

Я не могу вспомнить точный синтаксис, но что-то вроде следующего кода должен получить имена категорий, чтобы вы могли получать сообщения для каждой категории...

{% for category in site.categories %}

   {% assign cat_name = category[0] %}

  {% for post in site.categories.cat_name %}

       ...

  {% endfor%}

 {% endfor %}

Ответ 4

Вот ответ, который использует сортировку (полезно!):

{% comment %}
#
#  Change date order by adding '| reversed'
#  To sort by title or other variables use {% assign sorted_posts = category[1] | sort: 'title' %}
#
{% endcomment %}
{% assign sorted_cats = site.categories | sort %}
{% for category in sorted_cats %}
{% assign sorted_posts = category[1] | reversed %}
<h2 id="{{category[0] | uri_escape | downcase }}">{{category[0] | capitalize}}</H2>
<ul>
  {% for post in sorted_posts %}
    <li><a href="{{ site.url }}{{ site.baseurl }}{{  post.url }}">{{  post.title }}</a></li>
  {% endfor %}
</ul>
{% endfor %}

Это не мое, оно взято из здесь.