構建 Hexo Blog 系統

前一段時間,我的 VPS 沒有及時繳費,結果被強制停機。續費之後,訪問我的 WordPress 網站,結果提示db connection error錯誤。。。Oh,該死的數據庫出問題了!加之 WordPress 是出了名的「臃腫」,訪問速度非常慢。我便心生了換一個網誌系統的念頭。

尋找

既然是重新尋找一個合適的網誌系統,那麼我對它的基本要求是:

  1. 開源:開源是最起碼的要求,不然還有什麼自建的意義嘞
  2. 支持Markdown:Markdown 的好處不必說,用過一次就忘不了
  3. 使用和維護簡單:寫篇文章要各種登入,各種設定,然後三天兩頭出問題,這種系統我是受不了的

按照這個要求展開尋找之後,我做了一個簡單的表格出來(全是開源的系統)。

系統 環境 原生 Markdown 維護難度
WordPress PHP+DB ❤︎❤︎❤︎❤︎
Ghost Node.js+DB Yes ❤︎❤︎❤︎
Typecho PHP+DB Yes ❤︎❤︎❤︎
Jekyll Ruby Yes ❤︎❤︎❤︎
Hexo Node.js Yes ❤︎

通過以上的比較(雖然不是很準確),可以發現他們幾乎都要使用數據庫來儲存數據,這就給維護帶來了一定的困難。

  1. 對於網誌系統來說,不使用數據庫也行的,反而速度更快。網誌的內容不頻繁更新,最多一天更新幾次,其餘的時間數據一直沒變。多數使用了數據庫的網誌系統,為了加快頁面解析的速度,減小伺服器的負擔,做了「靜態化」的處理。
  2. 沒有數據庫,減少了對環境的依賴。要使用數據庫,首先得安裝配置一個數據庫,然後還要連接數據庫,接著對數據庫進行操作、幾乎一切的配置和資料都儲存在數據庫裡面啊,整個系統都要依賴數據庫才能執行。數據庫一但歇菜了,立馬癱瘓!

找到了它

Hexo 是一個出自臺灣 tommy351 大神之手,基於 Node.js 的輕量靜態網誌系統

  1. 採用Markdown撰寫:簡單高效,專注于寫作,符合當下潮流
  2. 沒有數據庫:配置檔案是*.yml格式,用文字編輯器就能修改所有配置
  3. 靜態系統,速度飛快:修改快!生成快!訪問快!
  4. 資源豐富,易於維護:官網提供了非常詳細的說明,還有豐富的主題外掛的支援。日常使用只需要幾條命令(甚至是全自動),就能完成文章的發佈

這簡直是一個完美的網誌系統啊!

開始動手

搭建系統

  • 官是 https://hexo.io/ ,提供了多語種支援和詳細的配置指導,在這裏不再展開。

強烈推薦按照官網說明來安裝配置 Hexo,民間網誌上可能版本老舊或是作者的粗心大意,會有些坑,切記,切記。安裝 Hexo,大致需要 Node.js、git 等環境,沒錯就是這麼簡約!

同樣的,推薦按照官網說明來安裝配置。

  • 不出意外的話,整個系統就可以開始使用了。你可以把 Hexo 上傳到自己的 Github Pags 或者自己的 VPS 上運行。正如它的介紹那樣「快速、簡單且強大」!

寫篇文章

  1. 新建文章(3 種方法任選一種):
    1. source/_posts下新建一個文章的標題.md檔案
    2. 使用命令hexo new 文章標題
    3. 安裝 hexo-admin 外掛後,啟動伺服器(執行命令hexo serverhexo s),在瀏覽器打開localhost:端口號/admin,採取網頁中新建
  2. 撰寫文章(2 種方法任選一種)
    1. 用 Markdown 編輯器撰寫
    2. 安裝 hexo-admin 外掛後,啟動伺服器,在瀏覽器打開localhost:端口號/admin,採取網頁中編輯
  3. 清除快取檔案和已產生的靜態檔案,執行命令hexo clean
  4. 產生靜態檔案,執行命令hexo generatehexo g
  5. 部署網站,執行命令hexo deployhexo d

Tips

hexo-admin外掛:在本地瀏覽器上編輯文章

1
2
npm install hexo-admin --save
# 更多介紹 https://github.com/jaredly/hexo-admin

hexo-deployer-git外掛:用 Git 來部署

1
2
npm install hexo-deployer-git --save
# 更多介紹 https://github.com/hexojs/hexo-deployer-git

hexo-filter-flowchat外掛:生成流程圖

1
2
npm install hexo-filter-flowchart --save
# 更多介紹 https://github.com/bubkoo/hexo-filter-flowchart