Octopress是使用ruby语言编写的一套建立在jekyll之上的博客系统,它有一些很独特的特点:
使用静态页面;
不使用数据库;
使用markdown标记语言编写文章;
可以与git紧密集成,方便地进行博客的版本管理;
可以与Github Pages集成,不需要单独的web hosting,只要你有github帐号即可。
这些特点中的第三点到第五点尤其吸引我(第一点和第二点也很酷),于是我花了些时间研究。以下是相关的步骤和心得。
在你本地安装octopress
说“安装”可能不太恰当,准确的说是你需要从github上取得octopress的代码并进行些许配置。步骤请参考这里。
安装RVM(Ruby Version Manager)并使用”Ruby 1.9.2”作为你本地的ruby实现,这事我之前按照这篇文章做过,这里就不详细说了,你也可以按照octopress官方的介绍来安装RVM。
Added@20120207: 我在新机器上安装rvm以及octopress的过程中,遇到两个错误(如下),这里列出解决的办法。
1
2
3
4
5
6
7
8sudo apt-get install zlib1g-dev libssl-dev # run this to avoid later errors when using "gem" and "rake".
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bashrc
source ~/.bashrc
rvm install 1.9.2 && rvm use 1.9.2
rvm rubygems latest
gem update --system
bundle update # http://stackoverflow.com/questions/7918804/how-do-i-keep-all-gems-in-gemfile-compatible-after-an-updateIf you get the “no such file to load – zlib (LoadError)” error or “no such file to load – openssl (LoadError)”, do the following steps to resolve it:
1
2
3
4
5
6
7
8
9
10
11# From: http://fantasybei.iteye.com/blog/433503
sudo apt-get install zlib1g-dev libssl-dev
cd ~/.rvm/src/ruby-1.9.2-p290/ext/zlib
ruby extconf.rb
make && sudo make install
# From: http://railsforum.com/viewtopic.php?id=39587
sudo apt-get install libssl-dev
rvm remove 1.8.7, 1.9.2
rvm cleanup all
rvm install 1.9.2
rvm use 1.9.2 --default从github得到octopress代码,运行以下命令:
1 | git clone git://github.com/imathis/octopress.git octopress |
配置你本地的octopress,使之可以发布到你的github pages
这样就可以做到:你在本地创建博客文章(当然是用markdown写成的),然后直接deploy到你的github pages repo,github会自动进行发布。也就是说:所有发博客的动作只需要在你本地用命令完成,酷吧!
参考了这里。
- 创建你的github pages repo
如果你的github用户名是username,那个就创建一个名称为”username.github.com”的repo,这个repo就是你的github pages repo,更多信息可以参考这里。
- 在你本地运行以下命令,octopress会自动帮你进行配置:
1 | cd your_local_octopress_directory |
注意:当命令提示你输入github URL时,请使用这个格式的URL: “git@github.com:username/username.github.com.git”
当这个命令运行完成之后,你的github pages repo会有两个branches: master branch用于静态页面的发布(“octopress/_deploy”的内容),source branch用于保存你的blog内容(”octopress”目录中除了”_deploy”的其它内容)
到这里基本的配置就完成了,你还可以参考这里配置你博客的名称等信息。
编写并发布文章
请参考这里。
- 写文章
1 | cd your_local_octopress_directory |
该命令会在你的”octopress/source/_posts”目录下生成对应的”.markdown”文件,用任意文本编辑器编辑,使用markdown语法编写你的文章。
- 生成,预览并发布:
1 | cd your_local_octopress_directory |
还有很重要的一步是把你的修改(文本修改,不包含”_deploy”目录,”deploy”目录保存”rake generate”生成的静态页面内容,会被”rake deploy”命令提交到”master branch”)放到你的github pages(“source” branch)上:
1 | cd your_local_octopress_directory |
—–EOF—–