Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >带有Jekyll和Liquid的排序导航菜单

带有Jekyll和Liquid的排序导航菜单
EN

Stack Overflow用户
提问于 2012-01-29 12:11:45
回答 7查看 24K关注 0票数 69

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

代码语言:javascript
运行
AI代码解释
复制
---
layout : default
title  : Some title
weight : 5
---

导航菜单的结构如下:

代码语言:javascript
运行
AI代码解释
复制
<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过滤器似乎被忽略了。很明显,我做错了什么,但我不知道是什么。

EN

回答 7

Stack Overflow用户

发布于 2012-02-03 09:21:39

您唯一的选择似乎是使用双循环。

代码语言:javascript
运行
AI代码解释
复制
<ul>
{% for weight in (1..10) %}
  {% for p in site.pages %}
    {% if p.weight == weight %}
      <li>
        <a {% if p.url == page.url %}class="active"{% endif %} href="{{ p.url }}">
          {{ p.title }}
        </a>
      </li>
    {% endif %}
  {% endfor %}
{% endfor %}
</ul>

尽管它很丑陋,但它应该可以工作。如果你也有没有权重的页面,你将不得不包括一个额外的内部循环,只是在当前内部循环之前/之后执行{% unless p.weight %}

票数 36
EN

Stack Overflow用户

发布于 2013-05-18 14:46:51

下面的解决方案适用于Github (不需要插件):

代码语言:javascript
运行
AI代码解释
复制
{% assign sorted_pages = site.pages | sort:"name" %}
{% for node in sorted_pages %}
  <li><a href="{{node.url}}">{{node.title}}</a></li>
{% endfor %}

上面的代码段按文件名对页面进行排序( Page对象上的name属性派生自文件名)。我重命名了文件以匹配我想要的顺序:00-index.md01-about.md -和presto!页面是有序的。

一个陷阱是,这些数字前缀以URL结尾,这对大多数页面来说看起来很笨拙,在00-index.html中也是一个真正的问题。Permalilnks拯救:

代码语言:javascript
运行
AI代码解释
复制
---
layout: default
title: News
permalink: "index.html"
---

附注:我想变得聪明些,只为排序而添加自定义属性。不幸的是,自定义属性不能作为Page类的方法访问,因此不能用于排序:

代码语言:javascript
运行
AI代码解释
复制
{% assign sorted_pages = site.pages | sort:"weight" %} #bummer
票数 29
EN

Stack Overflow用户

发布于 2012-09-20 08:03:58

最简单的解决方案是在页面的文件名前面加上一个索引,如下所示:

00-home.html 01-services.html 02-page3.html

页面是按文件名排序的。但是,现在您将拥有丑陋的urls。

在您的yaml内容部分,您可以通过设置permalink变量来覆盖生成的url。

例如:

代码语言:javascript
运行
AI代码解释
复制
---
layout: default
permalink: index.html
---
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9053066

复制
相关文章
一、导航菜单_苹果cms什么导航菜单
即页面样式,组成很简单,即一个文本输入框<input>和一个搜索图标,这里图标可以自行搜索下载一个,或者像下面一样使用在线图标,全部代码如下:
全栈程序员站长
2022/09/19
4.1K0
一、导航菜单_苹果cms什么导航菜单
Jekyll 文章侧边索引导航
  Jekyll 与 Hexo 不同之处有很多,其中一处是在文章页面中不支持原生 [TOC] Markdown 语法来自动生成目录。而在 Hexo 中,即使主题不支持侧边悬浮的优化目录导航,也可以通过最简单的方式在文章的开始位置生成目录。虽然这种目录永远固定在文章开始的地方,但是总算是能够通过大小标题来给读者一个大概的思路。
zhonger
2022/10/28
1.6K0
Jekyll x Liquid 控制文章列表只显示特定类别的Post
这个也很简单, 只需要立一个 Flag循环判断是否含有这个 Tag 就行 o(
szhshp
2022/08/15
4830
转义,解决花括号在 Jekyll 被识别成 Liquid 代码的问题
发布于 2017-10-12 16:08 更新于 2018-08-12 06:49
walterlv
2018/09/18
1.4K0
各类导航菜单
以下内容由于涉及到很多学习DEMO 和 下载链接,建议在PC端查看。以下资料都来自站长素材。
用户7293182
2022/01/17
2.4K0
HTML导航菜单
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159456.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/17
6.1K0
使用 WordPress 的导航菜单
WordPress 原来默认的导航菜单只能是页面,或者分类,或者两者,如果想自己加入一个自定义链接都需要修改主题,非常不方便,所以一个完全可定制化的自定义的 WordPress 导航菜单成了所有人的需求。
Denis
2023/04/14
2K0
使用 WordPress 的导航菜单
导航菜单优化制作
摘要总结:本文主要介绍了如何利用JavaScript语言实现一个具有轮播效果和鼠标悬浮弹出菜单的导航菜单。首先介绍了JavaScript语言的基础知识,然后详细讲解了如何利用JavaScript语言实现轮播效果和鼠标悬浮弹出菜单。最后介绍了如何使用JavaScript语言实现导航菜单的交互功能。
IMWeb前端团队
2017/12/29
3.7K0
导航菜单优化制作
导航菜单优化制作
以前制作导航菜单,总要加许多id在HTML中,js代码也要将id挨个加上去,今日终于习得破解之法,不在用以前那种笨拙的方法了。
IMWeb前端团队
2019/12/03
2.7K0
wordpress输出导航菜单
更多参照 https://developer.wordpress.org/reference/functions/wp_get_nav_menu_items/
切图仔
2022/09/14
1.8K0
wordpress输出导航菜单
bootstrap nav 导航菜单
nav nav-tabs <p>标签式的导航菜单</p> <ul class="nav nav-tabs"> <li class="active"><a href="#">Home</a></li> <li><a href="#">SVN</a></li> <li><a href="#">iOS</a></li> <li><a href="#">VB.Net</a></li> <li><a href="#">Java</a></li> <li><a href="#">PHP</a></li> </ul>
用户5760343
2019/07/05
4.9K0
bootstrap nav 导航菜单
layui响应式导航(菜单)
今天来分享一套自己写的layui响应式导航栏菜单,网络上搜索无果,只能自己写了,现在分享出来。
申霖
2019/12/27
5.1K0
layui响应式导航(菜单)
为带有多种语言的 Jekyll 博客添加多语言选择
发布于 2018-03-06 06:47 更新于 2018-09-01 00:13
walterlv
2018/09/18
1.6K0
二级导航菜单[通俗易懂]
本文用html5+css实现了二级导航菜单,二级导航菜单在网站建设中使用的越来越广泛。 效果图如下:
全栈程序员站长
2022/09/19
5.1K0
二级导航菜单[通俗易懂]
jquery导航菜单「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159432.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/17
5.9K0
jquery导航菜单「建议收藏」
bootstrap 常用导航菜单样式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 实例 - 标签页与胶囊式标签页</title> <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body>
用户5760343
2019/07/05
6.3K0
Suffusion设置主导航菜单
换用Suffusion主题之后,把菜单栏变成导航横到网站上方了,但是过了很久之后发现不知道以前从哪里设置的这些东西,今天偶然又找到,赶紧记录下来,以防忘记。
the5fire
2019/02/28
1.4K0
Element UI导航菜单(NavMenu),动态多级菜单实现
今天同事封装一个导航栏的组件,使用的 Element UI 的 NavMenu 组件。
德顺
2020/12/28
15.2K0
html导航栏可以展开的下拉菜单,html导航栏下拉菜单如何制作[通俗易懂]
小编给大家分享一下html导航栏下拉菜单如何制作,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
全栈程序员站长
2022/09/01
8.9K0
点击加载更多

相似问题

For循环和带有liquid和jekyll的弹出窗口

17

如何使用Jekyll / Liquid创建主题菜单

12

基于两列的Jekyll / liquid代码排序

10

使用Jekyll / liquid模板对数组进行排序

32

访问带有Jekyll/Liquid模板中变量的数组

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文