Коллекции
Коллекции представляют следующий тип отображений в 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
---