从 Octopress 迁移到 Hexo

Hexo Octopress   2016-02-16 23:10:59 发布
您的评价:
     
0.0
收藏     0收藏
文件夹
标签
(多个标签用逗号分隔)

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

创建一个新的博客

接着我们创建一个新的博客目录:

$ hexo init <folder>
$ cd <folder>
$ npm install

以上命令完成后,会在目标目录生成以下的目录结构:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

相比 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"

如果你遇到了和我一样问题的话,把以上脚本稍做修改应该也能很好地工作。

总结

Octopress 已经过时,建议有时间的朋友都可以尝试替换掉它。Hexo 算不上完美,但还算是一个不错的替代方案。

扩展阅读

迷你 PaaS 服务器:octohost
基于nodejs 的静态博客网站生成器:Hexo
使用Hexo在Github上搭建自己的博客
构建基于Git的静态全栈式框架 - CMS、移动应用、桌面编辑器
构建基于Git为数据中心的CMS

为您推荐

构建基于Git为数据中心的CMS
Express入门教程:一个简单的博客
Laravel大型项目系列教程
React 入门实例教程
原生JS实现自动生成文章标题树

更多

Hexo
Octopress
博客系统
相关文档  — 更多
相关经验  — 更多
相关讨论  — 更多