gpt4 book ai didi

ejs - 如何通过 hexo 中 layout.ejs 中的 site.posts 中的帖子更改迭代顺序?

转载 作者:行者123 更新时间:2023-12-02 17:26:41 24 4
gpt4 key购买 nike

我想使用 hexo,这样我就有一个出现在每个页面上的侧边栏(layout.ejs 中的侧边栏),它按时间倒序链接到我所有的帖子。

在我的主题中,我有一个 sidebar.ejs 片段,如下所示:

<div class="sidebar-links-wrapper">
<% site.posts.each(function(item){ %>
<a href="<%- config.root %><%- item.path %>" class="navlink"><%- item.title %></a>
<% }); %>
</div>

但是 site.posts 的顺序似乎不正确。它不按帖子创建日期的顺序显示。

在 index.ejs 中,我有一个部分,其中帖子以正确的顺序显示(使用 page.posts)。

<% page.posts.each(function(item){ %>
-- some other stuff
<% }); %>

但是,我不能在 sidebar.ejs 中使用 page.posts,因为 layout.ejs 包含 sidebar.ejs,如果我引用 page 变量,它似乎会抛出找不到页面的错误。

有没有办法正确排序 site.posts?或者从 layout.ejs 引用 page.posts 的方法?或者用不同的方式来达到我想要的效果?

感谢您的帮助。

最佳答案

<div class="sidebar-links-wrapper">
<%
// Fast array clone
var posts = site.posts.slice(0);
posts.sort(function(a, b){
return a.date < b.date
});
%>
<% posts.forEach( function(item, i) { %>
<a href="<%- config.root %><%- item.path %>" class="navlink"><%- item.title %></a>
<% } %>
</div>

关于ejs - 如何通过 hexo 中 layout.ejs 中的 site.posts 中的帖子更改迭代顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38032013/

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