Jekyll - Проверьте, принадлежит ли страница коллекции - PullRequest
0 голосов
/ 25 декабря 2018

Есть ли способ проверить, принадлежит ли текущая страница к коллекции?Если да, могу ли я проверить, что обозначает ярлык коллекции?

Фоновая история: я пытаюсь добиться отображения другого макета для всех страниц, принадлежащих коллекции.В этом новом макете я хочу отобразить боковую навигацию (что-то вроде «Смотрите также») со списком всех страниц в коллекции, к которой принадлежит текущий сайт.

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

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

page.collection возвращает метку коллекции, которой принадлежит документ.Поэтому я думаю, что вы хотите сделать что-то вроде:

{% if page.collection == 'COLLECTION_LABEL' %}
NEW LAYOUT
{% else %}
OLD LAYOUT
{% endif %}

Чтобы получить доступ к страницам в коллекции, вы можете использовать метку с site.COLLECTION_LABEL или site[COLLECTION_LABEL] (вам нужно [], если этопеременная).Что-то вроде:

{% for page in site[page.collection] %}
<a href="{{ page.url }}">{{ page.title }}</a>
{% endfor %}
0 голосов
/ 26 декабря 2018

Любой документ коллекции имеет переменную page.collection, которая является меткой коллекции.

Но, если вы хотите связать определенный макет с коллекцией, вы можете использовать конфигурация по умолчанию :

defaults:
  -
    scope:
      type: mycollection
    values:
      layout: a_custom_layout
      anyvar: a_custom_var
...