Использование коллекции для подстраниц в Jekyll приводит к Liquid Exception - PullRequest
0 голосов
/ 10 декабря 2018

Для ясности я хочу хранить все файлы шаблонов для подстраниц в каталоге с именем _pages.Поскольку Jekyll игнорирует все каталоги, начинающиеся с _, мне нужно добавить следующее к моему _config.yml:

include:
  - _pages

Несмотря на то, что это уже работает достаточно хорошо, более удобным способом достижения таких же результатов будетиспользовать collection для всех подстраниц.Таким образом, для подстраниц можно указывать type: pages при определении значений по умолчанию, таких как общие макеты или метаданные.

collections:
  pages:
    output: true

Хотя вышеприведенное работает как обаяние для другого проекта, при его использовании возникает следующее исключениедля моего текущего проекта:

Liquid Exception: wrong number of arguments (given 0, expected 1) in /_layouts/content.html

Я понятия не имею, как переключение с метода включаемой папки на метод сбора может привести к этой ошибке.Еще более странным является то, что в сообщении не указан номер строки.

Файл content.html используется в качестве основного макета для подстраниц и имеет следующий контент:

---
layout: default
---

<div class="o-page o-page--pushed {{ page.style }}">
  {% include navigation.html %}

  <main class="o-page__content{% if page.merge %} u-pv-0x{% endif %}">
    {{ content }}
  </main>

  {% include footer.html %}
</div>

РЕДАКТИРОВАТЬ: Я создал хранилище , которое воспроизводит проблему.

1 Ответ

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

Ошибка возникает при вызове page.merge.Поскольку:

  • site.pages уже является специальной группой pages , замена ее на коллекцию страниц не является особенно хорошей идеей.После этого вы больше не сможете обращаться к страницам оригиналов через site.page, а только к новым элементам коллекции.
  • При вызове page.merge для элемента коллекции Liquid пытается вызвать метод Jekyll::Drop::merge, для которого требуется аргумента не свойство merge, установленное в начале.

Решение: не устанавливать страницы как коллекцию.

...