從 Octopress 遷移到 Hexo

ValentinaLI 8年前發布 | 97K 次閱讀 Hexo Octopress 博客系統

來自: 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>

 本文由用戶 ValentinaLI 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!