Сделать навигацию между постами в Jekyll довольно просто. Воспользуемся для этого глобальной переменной page и поста previous и next.
Тем не менее, пользователь, находясь на странице последнего поста, будет видеть возможность перейти к следующему, которого нет. Та же ситуация и с первым постом.
Исправить это, можно воспользовавшись if:
То есть, если previous или next возвращают nil, то ссылка находящаяся между if не отобразится.
Я использую посты не только для статей, но и для вывода работ. Структура папки _post выглядит таким образом:
Но применяя этот способ, столкнулся с проблемой, когда мы переходим со статей в работы и обратно. Это необходимо устранить.
Код, приведенный ниже решает эту задачу:
Попробуем разобраться что к чему.
Если пост имеет категории, тогда создаем две переменные. В первую помещаем необходимую нам категорию, а во вторую все посты связанные с ней.
При совпадении url страницы и поста, помещаем индексы итерации в post_index0 и post_index.
Снова воспользовавшись for перебираем посты и узнаем, есть ли следующий пост и предыдущий.