0083 — Пагинация в Jekyll
Чтобы в Jekyll нормально работала навигация, нужно сделать несколько очевидных шагов и один неочевидный:
-
Добавьте в
Gemfileплагинjekyll-paginate:# frozen_string_literal: true source 'https://rubygems.org' gem 'jekyll' gem 'minima' gem 'rubocop' group :jekyll_plugins do gem 'jekyll-feed' gem 'jekyll-paginate' gem 'jekyll-sitemap' end -
Установите гемы:
bundle install -
В конфигурационном файле
_config.ymlдобавьтеjekyll-paginateв список используемых плагинов:# ... --- plugins: - jekyll-feed - jekyll-paginate - jekyll-sitemap # ... -
В конфигурационном файле
_config.ymlукажите параметры пагинации, если хотите изменить настройки по умолчанию:paginate: 10 paginate_path: "/posts/page:num/" -
Если в корне сайта лежит файл
index.md— удалите его.Это самый сложный пункт. На сайте Jekyll ни слова о том, что плагин НЕ работает с Markdown.
-
Создайте в корне сайта файл
index.html, содержащий шаблон пагинации:--- layout: default --- <ul> {% for post in paginator.posts %} <li><a href="{{ post.url }}">{{ post.title }}</a></li> {% endfor %} </ul> <div class="pagination"> {% if paginator.previous_page %} <a href="{{ paginator.previous_page_path }}">« Назад</a> {% endif %} <span>Страница {{ paginator.page }} из {{ paginator.total_pages }}</span> {% if paginator.next_page %} <a href="{{ paginator.next_page_path }}">Вперёд »</a> {% endif %} </div>