天天看點

hexo添加_給hexo部落格添加系列文章功能

hexo添加_給hexo部落格添加系列文章功能
hexo添加_給hexo部落格添加系列文章功能

前言

因為寫了一堆有關于一、二、三等有關的系列文章,而且這些文章寫得時間又肯不是連續的。是以hexo的上一篇、下一篇文章功能就不能滿足。需要有個系列文章的功能,于是着手實作該需求...

一開始的思路就是模仿分類(categories)和标簽(tags),來建立一個系列(series)來實作。為了弄懂分類和标簽的生成實作原理還跑hexo的github倉庫上看了下源代碼。辛虧是時間不多,用平時的的空閑時間來實作的,是以沒在這條探索HEXO大道的深坑上走的太久。

第二天偶然一次機會讓我發現了hexo的二級分類,會在一級分類下建立一個二級分類的檔案夾,所有該二級分類的文章都在這個檔案夾下。就想借助這個二級分類來實作系列功能。

嗯…就在我快用二級分類來實作系列文章功能的時候,我發現之前繞了遠路。

之前是想用分類和标簽來周遊出對應的文章。由于沒有系列這個變量使用了二級分類來代替…但是我們可以通過周遊文章來顯示出有關的系列文章。這種方法就容易實作很多,而且比用二級分類代替更加合理。

實作

廢話不多說,加下來帶大家來實作。在這裡隻介紹用周遊文章法實作的:

第一步

hexo添加_給hexo部落格添加系列文章功能

在改檔案裡添加一個series,效果如下:

hexo添加_給hexo部落格添加系列文章功能

内容看你自己的主題而定,你隻需加個series:就行。

這時候你建立的md檔案就都有series:這個項了,我們可以在其中填寫系列名稱。

第二步

在md文章中添加series:的值。如:

hexo添加_給hexo部落格添加系列文章功能

第三步

這步才是幹貨,在主題對應渲染文章的模闆檔案下添加系列檔案顯示。

由于部落客的主題用的是ejs寫的,以下僅給出ejs的代碼:

hexo添加_給hexo部落格添加系列文章功能

解釋:

post.series是該篇文章的系列,即第二步中填的值。if (post.series) 如果有值才調用。site.posts.sort(‘date’).map(function(p){ 将本站所有的文章按日期排序并周遊if (post.series == p.series){ 如果改文章的系列和周遊文章的系列一樣,則進入”> 顯示出滿足文章的url路徑和文章标題

到此為止系列文章的需求實作了

最終效果如下:

hexo添加_給hexo部落格添加系列文章功能