gpt4 book ai didi

jekyll - 使用 Jekyll 和 Liquid 进行排序的导航菜单

转载 作者:行者123 更新时间:2023-12-03 03:37:03 26 4
gpt4 key购买 nike

我正在使用 Jekyll/Liquid 构建一个静态网站(无博客)。我希望它有一个自动生成的导航菜单,列出所有现有页面并突出显示当前页面。项目应按特定顺序添加到菜单中。因此,我在页面的 YAML 中定义了一个 weight 属性:

---
layout : default
title : Some title
weight : 5
---

导航菜单的构造如下:

<ul>
{% for p in site.pages | sort:weight %}
<li>
<a {% if p.url == page.url %}class="active"{% endif %} href="{{ p.url }}">
{{ p.title }}
</a>
</li>
{% endfor %}
</ul>

这会创建指向所有现有页面的链接,但它们未排序,sort 过滤器似乎被忽略。显然,我做错了什么,但我不知道是什么。

最佳答案

从 Jekyll 2.2.0 开始,您可以按任何对象属性对对象数组进行排序。您现在可以执行以下操作:

{% assign pages = site.pages | sort:"weight"  %}
<ul>
{% for p in pages %}
<li>
<a {% if p.url == page.url %}class="active"{% endif %} href="{{ p.url }}">
{{ p.title }}
</a>
</li>
{% endfor %}
</ul>

与 @kikito 解决方案相比,可以节省大量构建时间。

编辑:您必须将排序属性指定为整数weight: 10,而不是字符串weight: "10"

将排序属性指定为字符串将最终得到类似“1, 10, 11, 2, 20, ...”的字符串排序

关于jekyll - 使用 Jekyll 和 Liquid 进行排序的导航菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9053066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com