在 “還有書籍” 主題中,我把分類當作一本書,分類中的文章則形成一本書的內容。
這時,不能簡單的調用全站的文章來當作上一篇、下一篇的內容。
所以結合 Hexo 基於分類輸出文章 - 折影輕夢 (nexmoe.com) 我寫了一個基於分類輸出上一篇、下一篇文章。
直接貼代碼了,看註釋應該能看懂
<nav class="post-nav">
<% site.categories.map(function(category){ %>
<% page.categories.map(function(page_category){ %>
<% if(page_category.name == category.name){ %> <!-- 先找到與當前文字相同的目錄 -->
<% let i = 0;%>
<% category.posts.sort('-date').map(function(post){ %>
<% i++; %>
<% if(post.title == page.title){ %> <!-- 在找到當前文章所在的 index -->
<% let ix = 0;%>
<% category.posts.sort('-date').map(function(post){ %>
<% ix++; %>
<% if(ix == i + 1 && post.title){ %> <!-- 上一篇文章 -->
<div class="old">
<span>上一章</span>
<a href="<%- url_for(post.path) %>"> <%= post.title %></a>
</div>
<% } %>
<% if(ix == i - 1 && post.title){ %> <!-- 下一篇文章 -->
<div class="new">
<span>下一章</span>
<a href="<%- url_for(post.path) %>"> <%= post.title %></a>
</div>
<% } %>
<% }) %>
<% } %>
<% }) %>
<% } %>
<% })%>
<% }) %>
</nav>