Чтобы в Jekyll нормально работала навигация, нужно сделать несколько очевидных шагов и один неочевидный:

  1. Добавьте в 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
    
  2. Установите гемы:

     bundle install
    
  3. В конфигурационном файле _config.yml добавьте jekyll-paginate в список используемых плагинов:

     # ...
     ---
     plugins:
       - jekyll-feed
       - jekyll-paginate
       - jekyll-sitemap
     # ...
    
  4. В конфигурационном файле _config.yml укажите параметры пагинации, если хотите изменить настройки по умолчанию:

     paginate: 10
     paginate_path: "/posts/page:num/"
    
  5. Если в корне сайта лежит файл index.md — удалите его.

    Это самый сложный пункт. На сайте Jekyll ни слова о том, что плагин НЕ работает с Markdown.

  6. Создайте в корне сайта файл 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 }}">&laquo; Назад</a>
       {% endif %}
    
       <span>Страница {{ paginator.page }} из {{ paginator.total_pages }}</span>
    
       {% if paginator.next_page %}
         <a href="{{ paginator.next_page_path }}">Вперёд &raquo;</a>
       {% endif %}
     </div>