我的网站基于多个页面。每个人都有前言,例如
---
menutitle: "Mediator"
menuorder: 2
lang: "en"
---
我想从页面构建导航栏并拥有
<% site.pages
.filter(p => p.lang == "en")
.sort( (i1, i2) => i1.menuorder - i2.menuorder )
.forEach( function(item, idx) { %>
<%- partial( 'menu_item', {data: {class: 'colour' + idx, title: item.menutitle, link: item.path}} ) %>
<% }) %>
我的问题是菜单顺序排序永远不会发生,菜单项最终似乎是上次保存的顺序!如何按菜单顺序排序
我认为site.pages不是一个数组,而是一个对象。因此,要么形成一个要排序和循环的页面内容的数组,要么只使用site.pages.data
而不是上面的模板中的site.pages
:
<% site.pages.data
.filter(p => p.lang == "en")
.sort( (i1, i2) => i1.menuorder - i2.menuorder )
.forEach( function(item, idx) { %>
<%- partial( 'menu_item', {data: {class: 'colour' + idx, title: item.menutitle, link: item.path}} ) %>
<% }) %>