Jekyll:Previous/Next 使用自定义导航时的导航

Jekyll: Previous/Next navigation when using custom navigation

Jekyll 官方教程有一整节介绍如何使用 YAML 文件定义自定义页面序列:https://jekyllrb.com/tutorials/navigation/

但它在任何地方都没有提到如何在该序列的页面上创建 previous/next 导航按钮,考虑到教程本身就有它们,这尤其具有讽刺意味。

我想出了一些 Liquid 来确定当前页面的索引:

{% for item in site.data.encore.docs %}
    {% if item.url != page.url %}
        {{ item.title }}: {{ forloop.index }}
    {% else %}
        <strong> This page index: {{ forloop.index }}</strong>
        {% assign this_page_index = forloop.index %}
        {% break %}
    {% endif %}
{% endfor %}

但出于某种原因,通过 {% decrement this_page_index %} 获取上一页的索引总是 returns -1,而 {% assign previous = this_page_index - 1 %} 之类的内容在 Liquid 中无效。尝试使用类似方法获取下一页也是如此。

完成此任务的理想方法是什么?我已经搜索了所有我能想到的方法,但没有找到任何东西。

您可以在他们的教程页面上找到 Jekyll 自己的导航代码,方法是筛选他们的 GitHub 存储库,直到您到达他们的 section_nav_tutorials.html,但看起来这样做的方法非常接近到你所拥有的。

Liquid 不尊重你直接做数学,你必须使用过滤器。对于你,你会使用 {% assign previous = this_page_index | minus: 1 %}.