前言
因為寫了一堆有關于一、二、三等有關的系列文章,而且這些文章寫得時間又肯不是連續的。是以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路徑和文章标題
到此為止系列文章的需求實作了
最終效果如下: