CatCoding

使用 Jekyll 和 Github 搭建博客

2012-06-13

为什么要折腾

折腾了几次终于把博客从 wordpress 搬到 Github 了,迁徙这事本来是够麻烦的,而且也比较无聊。不过最终还是抑制不住诱惑,这有下面几点点好处。


  • 编辑方便,专注写作

    在线下编辑,可以随便选择自己喜欢的编辑器。当然 wordpress 也有离线编辑工具,不过 Linux 下我还没找到合适的,
    我平常是用Muse生成 html,然后再粘贴到站上。其实还好,
    就是插入图片不方便。使用 Github 和 Jekyll 是完全的离线,你甚至都不需要离开终端就可以发布文章,一切都只是简单的 git push 而已。
    写的过程中还可以用 jekyll –server 预览最终排版。

  • 可以使用 Github 进行版本管理

像写程序一样写日志,这对程序员吸引很大。
我用这个小脚本来完成发布:

#!/bin/sh
do_commit() {
    cmd="git commit -a -m\"$log\""
    echo $cmd
    git add .;
    git commit -a -m"$log"
    git push;
}

while [ $# -gt 0 ]
do
  case $1 in
    -commit |-u) shift; log=$1; do_commit; exit 0;;
  esac
  shift
done
  • 简洁

我喜欢这套是因为感觉一切都很简单,在_post 目录下写 markdown 格式的文章,生成网页、push 上去就发布了。页面也非常整洁,这对于一个以文字和代码为主要内容的站点来说最合适不过了。而且因为生成的全是静态网页,所以打开的速度也非常快。


折腾过程


这套工具适合程序员,因为一切都可以在本机上操作,你可以自己写程序来批量处理文档。我是自己写了一点 Python 小程序转移图片。迁徙的过程中也会碰上一些问题,不过如果你懂一点 Ruby,这些都还是比较好解决的。基本步骤为:

  • 申请 GitHub,这个不少程序员有,直接跳过。

  • 安装 Jekyll 在本地,可能会遇上 ruby 版本的问题,我的机子上是 1.8.7,需要 1.9.2,使用rvm来解决,具体参考这里。具体使用下面一些命令:

sudo apt-get install gems curl
gem install rvm
rvm get latest 
rvm reload
rvm install 1.9.2
rvm use 1.9.2
ruby -v #(use 1.9.2)
gem install directory_watcher liquid open4 maruku classifier jekyll
  • 再建立 yourname.github.com 项目,git clone jekyll bootstrap到自己的代码库。

  • 从 wordpress 迁徙,我使用 wordpress.xml 这个方法,最后修改域名解析就大功告成了。
    修改域名的时候在 Git 上建立 CNAME 为 demo.com,在 DNS 处设置 demo.com 的 A 记录到 Github 的地址 (207.97.227.245),同时为了使得 www.demo.com 也指向 GitHub,设定
    www 的 A 记录到这个地址。这是我设置的时候出错了的地方。

    整个流程非常简单,你甚至可以在三分钟内完成 Github 的博客搭建,更相详细可以参考这里这里

公号同步更新,欢迎关注👻