Вы не можете добавить свою собственную коллекцию в site
просто так.
site
знает только о трех коллекциях: pages
, posts
и categories
. Вы можете получить все сообщения категории, выполнив site.<category>.posts
. AFAIK, категории работают только для сообщений, а не для страниц.
Это имеет смысл, поскольку предполагается, что Jekyll - это в основном движок для блогов, а не универсальный генератор статических веб-сайтов.
Так что ваше лучшее решение сейчас состоит в том, чтобы «обмануть» Джекилла. Сделайте так, чтобы вы поверили, что у вас есть посты, когда на самом деле вы создаете страницы.
_posts/
pressitems/
blog/
Вы сможете перебирать элементы внутри _posts / pressitems, как это:
for item in site.categories.pressitems.posts do
... {{ item.title }} ... {{ item.url }}
endfor
Точно так же ваши "настоящие записи в блоге" будут выглядеть следующим образом:
for p in site.categories.blog.posts do
... {{ p.title }} ... {{ p.url }}
endfor
Загвоздка в том, что вы должны будете соблюдать соглашение о присвоении имен Jekyll в отношении имен файлов; Ваши пресс-элементы должны выглядеть как настоящие сообщения. Это означает, что они должны быть названы, начиная с yyyy-mm-dd-string, например, posts. Просто дайте им случайную дату.
_posts/
pressitems/
1901-01-01-the-first-press-item.textile
1902-01-01-the-second-one.textile
РЕДАКТИРОВАТЬ: Это было верно, когда этот пост был изначально написан, в 2012 году, но не больше. Modern Jekyll позволяет создавать собственные коллекции https://jekyllrb.com/docs/collections/