從 Octopress 遷移到 Hexo
來自: http://blog.devtang.com/2016/02/16/from-octopress-to-hexo/
我的博客之前一直使用的是 Octopress ,不過 Octopress 已經很久沒有更新了。而且 Octopress 是基于 Ruby 的,生成博客文章的速度真的是非常非常慢,每次我使用 rake preview 命令時,我的 MacBook 的 CPU 就會狂轉。最新的一次我試圖在新 MBP 上搭建 Octopress 博客環境失敗了,這讓我打定主意更換掉它。
之后我調研了一下,最終決定遷移到 Hexo,主要的原因是:
- Hexo 的原理和 Octopress 一樣,都是生成靜態文件,這樣可以方便地托管到 GitHub 和 GitCafe 上。
- Hexo 是基于 Node 的,而 Node 的速度非常快。
- Hexo 對 Octopress 的遷移很友好,圖片引用方式完全一樣,所以我的博客文章不需要做什么改動。
遷移本來應該在春節前就做完的,不過我在選擇 Hexo 的主題上犯難了,Hexo 自帶的主題丑極了,而我試了將近 10 個主題,都不滿意。最終,我發現了 SwiftGG 使用的主題 Jacman ,于是決定就它了!
整個遷移過程大概如下:
安裝 Hexo
首先使用如下命令安裝 Hexo:
npm install -g hexo-cli
</div>
創建一個新的博客
接著我們創建一個新的博客目錄:
$ hexo init <folder> $ cd <folder> $ npm install
</div>
以上命令完成后,會在目標目錄生成以下的目錄結構:
. ├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes
</div>
相比 Octopress,Hexo 的目錄結構更加簡單:
- _config.yml 是博客的配置文件。
- scaffolds 是博客文章模板。
- source 是博客文章目錄。
- themes 存放主題風格文件。
遷移和配置
遷移起來還是很方便,把以前 Octopress 的 source/_post 目錄下的文章,拷貝到 Hexo 的同名目錄下即可。
以前的圖片目錄,也可以直接拷貝到 source/images 目錄下。
Google 統計相關的設置可以在 jacman 的 _config.yml 文件中配置。我以前用的評論系統太舊了,這次正好換成了 多說 ,同樣也是在 jacman 的配置文件中設置。
修改界面
選擇 Hexo 的另一個原因就是它的結構很簡單,比較方便我定制。我在遷移完博客文章后,對 jacman 主題進行了一些定制。刪掉了底部的作者介紹,然后在右側邊欄加上了我的微信公眾號介紹。如果你想看看我是如何定制的,可以直接查看我 Fork 出來的 jacman 項目上的 Commits 即可,項目地址在 這里 。
發布文章
Hexo 支持直接發布到 GitHub,不過我在配置好 _config.yml 文件后,執行 Hexo deploy 一直失敗!Hexo 一直卡在生成頁面過程中,沒有任何報錯,這使得我也不知道如何修復它。
最終,我自己寫了一個小腳本來做發布工作:
#! /bin/zsh hexo clean hexo generate cd public git init git add . git commit -m "update at `date` " git remote add origin git@github.com:tangqiaoboy/tangqiaoboy.github.com.git >> /dev/null 2>&1 echo "### Pushing to Github..." git push origin master -f echo "### Done" git remote add gitcafe git@gitcafe.com:tangqiaoboy/tangqiaoboy.git >> /dev/null 2>&1 echo "### Pushing to GitCafe..." git push gitcafe master:gitcafe-pages -f echo "### Done"
</div>
如果你遇到了和我一樣問題的話,把以上腳本稍做修改應該也能很好地工作。
總結
Octopress 已經過時,建議有時間的朋友都可以嘗試替換掉它。Hexo 算不上完美,但還算是一個不錯的替代方案。
</div>