Как мне определить пользовательскую коллекцию в Jekyll?

#jekyll #liquid #github-pages #jekyll-bootstrap

#jekyll #жидкость #github-страницы #jekyll-bootstrap

Вопрос:

Следуя документации Jekyll Collections, я написал следующий код в _config.yml

 _config.yml

collections: 
- popular_posts
  

Поэтому, когда я печатаю {{ site.collections }}, выводится «popular_posts».

Я также создал папку с именем «_popular_posts» на том же уровне, что и «_posts». _popular_posts содержит два файла .md с некоторым значением интерфейса YAML, таким же, как post.

Однако, если я напечатаю {{ site.popular_posts }} или {{ site.collections.popular_posts }} , вывода не будет.

Как мне заставить Jekyll распознавать файлы .md в этом каталоге, чтобы следующий код работал?

 {% for popular_post in site.popular_posts %}
  <a href="{{ popular_post.link }}">
    <h1>{{ popular_post.title }}</h1>
    <img class="pop-img" src="{{ popular_post.image_url }}">
  </a>
  <span id="pop-order"><span class="pop-current-popular_post-number">{{ popular_post.number }}</span>/5</span>
{% endfor %}
  

Комментарии:

1. Вы установили output: значение true ? Я не совсем понимаю коллекции, но, насколько я понимаю, это необходимо для того, чтобы заставить Jekyll генерировать элементы коллекции. Также обратите внимание, что функциональность коллекций, как говорят, находится в бета-версии и может быть еще не полностью функциональной.

Ответ №1:

Это довольно просто! Вы на правильном пути. В вашем _config.yml :

 collections:
- popular_posts
  

Это заставит Jekyll читать во всех файлах _popular_posts .

Если вы хотите, чтобы каждый из этих двух файлов имел соответствующий выходной файл (например, как _posts работает сейчас), вам нужно изменить свой _config.yml на:

 collections:
  popular_posts:
    output: true
  

Это приведет к созданию файлов в /popular_posts/filename1.html и /popular_posts/filename2.html , по одной странице для каждого сообщения.

Коллекции только недавно появились на страницах GitHub, поэтому, если бы вы пытались это сделать там, это не удалось бы.

Проверьте jekyll-help для получения дополнительной помощи, если она вам нужна!