无法对六角形/ejs 中的菜单项进行排序



我的网站基于多个页面。每个人都有前言,例如

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

最新更新