Коллекции
Коллекции представляют следующий тип отображений в Jekyll. Посты и страницы являются коллекциями. Jekyll предоставляет возможность создавать собственные коллекции.
Объявить коллекцию можно в _config.yml по опции collections.
collections:
- some_collection
Или с дополнительными переменными
collections:
some_collection:
varname: varvalue
Коллекции доступны атрибуты по-умолчанию. Атрибут collections_dir - указывает на местоположение коллекции, а сама директория с коллекцией располагается по адресу <collections_dir>/_<collection_name>.
defaults:
- scope:
path: ""
type: some_collection
values:
layout: page
По-умолчанию документы из коллекции не могут иметь ссылку и быть публичными, а могут только быть где-то использованы.
{% for doc in site.collections.some_collection.docs %}
{{ doc.content }}
{% endfor %}
Чтобы сделать коллекцию общедоступной используется переменная output в _config.yml. Ссылку можно задать с помощью переменной permalink.
collections:
some_collection:
output: true
permalink: /:collection/:name
Для переменной permalink доступны плейсхолдеры:
:collection- имя коллекции:name- полное имя документа:path- путь до документа, то есть будет создана директория с именем документа, а внутри будетindex.html.:title- берется из Front Matter конкретного документа:output_ext- расширение файла.
Также, если будет отсутствовать Front Matter в документе, то от будет рассматриваться как статический файл.
Все коллекции доступны как свойство переменной сайта site.collection_name (появляются в виде массива документов), а все коллеции доступны в site.collections со свойствами:
label- имя коллекцииdocs- массив документов коллекцииfiles- массив файлов коллекцииrelative_directory- директория относительно корня сайтаdirectory- полный путь до коллекцииoutput- отображаемая ли коллекция
Чтобы получить коллекцию можно воспользоваться
{{ site.collections | where: "label", "myCollection" | first }}
Документ коллекции имеет следующие свойства:
content- контентpath- полный путь до документаoutput- отображаемая ли коллекцияurl- URL без хостаrelative_directory- директория относительно корня сайтаcollection- имя коллекцииdate- дата документа
Можно вынести Front Matter коллекции в отдельный файл с расширением разметки, а там задать дополнительные атрибуты. Пример файла attributes.md:
---
title: "Josquin: Missa De beata virgine and Missa Ave maris stella"
artist: "The Tallis Scholars"
director: "Peter Phillips"
works:
- title: "Missa De beata virgine"
composer: "Josquin des Prez"
tracks:
- title: "Kyrie"
duration: "4:25"
- title: "Gloria"
duration: "9:53"
- title: "Credo"
duration: "9:09"
- title: "Sanctus & Benedictus"
duration: "7:47"
- title: "Agnus Dei I, II & III"
duration: "6:49"
output: false
---