Phil的技术博客

整理、记录技术知识经验.

第一次在GitHub上搭建博客

| Comments

决定开始写博客,好好整理一下技术经验。现在大家都用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

使用自己的域名

  1. 在自己的域名解析中加一条CNAME记录,指向GitHub的域名(USERNAME.github.com)。
  2. 在网站根目录下加一个文件CNAME,写入自己的域名,如:blog.chinaework.com。
  3. 修改_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。

参考资料

Comments