前言
因為寫了一堆有關於一、二、三等有關的系列文章,而且這些文章寫得時間又肯不是連續的。所以hexo的上一篇、下一篇文章功能就不能滿足。需要有個系列文章的功能,於是著手實現該需求...
一開始的思路就是模仿分類(categories)和標籤(tags),來創建一個系列(series)來實現。為了弄懂分類和標籤的生成實現原理還跑hexo的github倉庫上看了下源代碼。辛虧是時間不多,用平時的的空閒時間來實現的,所以沒在這條探索HEXO大道的深坑上走的太久。
第二天偶然一次機會讓我發現了hexo的二級分類,會在一級分類下新建一個二級分類的文件夾,所有該二級分類的文章都在這個文件夾下。就想借助這個二級分類來實現系列功能。
嗯…就在我快用二級分類來實現系列文章功能的時候,我發現之前繞了遠路。
之前是想用分類和標籤來遍歷出對應的文章。由於沒有系列這個變量使用了二級分類來代替…但是我們可以通過遍歷文章來顯示出有關的系列文章。這種方法就容易實現很多,而且比用二級分類代替更加合理。
實現
廢話不多說,加下來帶大家來實現。在這裡只介紹用遍歷文章法實現的:
第一步
在改文件裡添加一個series,效果如下:
內容看你自己的主題而定,你只需加個series:就行。
這時候你新建的md文件就都有series:這個項了,我們可以在其中填寫系列名稱。
第二步
在md文章中添加series:的值。如:
第三步
這步才是乾貨,在主題對應渲染文章的模板文件下添加系列文件顯示。
由於博主的主題用的是ejs寫的,以下僅給出ejs的代碼:
解釋:
- post.series是該篇文章的系列,即第二步中填的值。
- if (post.series) 如果有值才調用。
- site.posts.sort(‘date’).map(function(p){ 將本站所有的文章按日期排序並遍歷
- if (post.series == p.series){ 如果改文章的系列和遍歷文章的系列一樣,則進入
- ”> 顯示出滿足文章的url路徑和文章標題
到此為止系列文章的需求實現了
最終效果如下:
閱讀更多 看到他請叫他快去學習 的文章