决定开始写博客,好好整理一下技术经验。现在大家都用GitHub的Pages服务部署静态页面做博客,第一篇博客就记录一下搭建的过程。
安装rvm和ruby
GitHub官方提供的博客网站建设工具Jekyll是用ruby写的,所以先在本地安装ruby。rvm是管理ruby安装的工具。 先安装和设置rvm:
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' >> ~/.bash_profile
source ~/.bash_profile
再安装ruby:
vm install 1.9.2 && rvm use 1.9.2
rvm rubygems latest
注册GitHub账号,并建立用于博客网站的代码仓库(repository)
在(https://github.com/signup/free)申请好GitHub账号后,建一个名为USERNAME.github.com
的代码仓库USERNAME
即账号名,实际操作即进行相应替换,如:wangfuhai2013
(下同)。
(GitHub现在推荐使用USERNAME.github.io,但USERNAME.github.com也同时可以使用)
在本地安装Jekyll,并推送到GitHub
第一次我是通过GitHub的官方的客户端程序建立的代码仓库,本地代码仓库存放目录为/opt/data/github,安装过程如下:
$ cd /opt/data/github
$ git clone https://github.com/plusjade/jekyll-bootstrap.git USERNAME.github.com
$ cd USERNAME.github.com
$ git remote set-url origin git@github.com:USERNAME/USERNAME.github.com.git
$ git push origin master
push前,可先删除jekyll-bootstrap中的示例内容:
$ rm -rf _posts/core-samples
配置和使用Jekyll
在_config.yml
中修改博客名称、作者名、email地址等信息:
$ cd USERNAME.github.com
$ vi _config.yml
创建文章,修改文章内容:
$ rake post title="first install blog"
$ vi _posts/2013-05-14-first-install-blog.md
修改后,生成实际页面,看一下有没有什么错误:
$ jekyll build
修改首页,首页是一个页面,直接修改相应的md文件:
$ vi index.md
jekyll中创建页面的命令跟文章不一样:
$rake page name="about.md"
发布博客
先在本地运行Jekyll服务,通过localhost:4000地址预览一下效果:
$ jekyll serve
再push到github上:
$ git add -u
$ git commit -m 'create a new post'
$ git push origin master
使用自己的域名
- 在自己的域名解析中加一条CNAME记录,指向GitHub的域名(USERNAME.github.com)。
- 在网站根目录下加一个文件CNAME,写入自己的域名,如:blog.chinaework.com。
- 修改
_config.yml
中的production_url设置,设为自己的域名地址。
更换markdown解释器
jekyll默认是用Maruku做markdown的解释器,但Maruku是ruby写的,效率较低,可以换成用c写的RDiscount,效率更好。 先安装RDiscount:
$ gem install rdiscount
再修改_config.yml
文件,增加一行:
markdown: rdiscount
但RDiscount在build过程中,不会报告markdown的语法错误,而Maruku会清楚文件内容中的语言错误。
配置评论功能
在disqus注册账号后,修改_config.yml
中的short_name设置。
配置google analytics
在googel analytics中增加媒体资源后,修改_config.yml
中的tracking_id设置。
换用octopress
octopress是基于Jekyll的博客生成工具,页面风格比Jekyll更好更丰富,并且即开即用,不用自己做更多定制工作。于是从Jekyll换成octopress。
octopress安装
先从GitHub把octopress的代码库clone下来:
$ git clone git://github.com/imathis/octopress.git octopress
$ cd octopress/
修改Gemfile
文件,将gem文件源改为淘宝建立镜像源,这样下载gem包会快很多:
source "http://ruby.taobao.org"
然后进行安装:
$ bundle install
$ rake install
octopress的使用
修改_config.yml
的博客相关配置信息,注释掉twitter相关配置(墙内无用),然后创建文章,并修改其内容:
$ rake new_post['install blog on github']
$ vi source/_posts/2013-05-17-install-blog-on-github.markdown
生成静态文件,然后进行预览:
$ rake generate
$ rake preview
将CNAME
文件放放source目录,最后设置好GitHub Pages的个人代码库地址,进行发布:
$ rake set_github_pages
$ rake deploy
octopress及网站源文件
octopress发布网站内容不像Jekyll将所源文件都上传的github上,而只是将生成的静态文件上传到github上。 对于octopress本身和网站的源文件,可以另建代码库进行维护,如在github新建一个名为octopress的代码库,然后进行上传:
$ git add .
$ git commit -m "initial commit"
$ git remote set-url origin git@github.com:wangfuhai2013/octopress.git
$ git push origin source
注octopress在本地安装的是source分支,不是master分支,所以push的目对象是source。