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 %}
.
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 %}
.