使用github作为博客引擎

在介绍之前,先普及一下基础知识,大鸟们直接跳过。

什么是git

git是一个分布式版本控制工具(DVCS),不需要服务端软件支持(即使在地铁里也可以正常commit),Linux内核开发用的版本控制工具就是它。

常用的SVN属于集中式版本控制工具(CVCS),需要在服务端开启SVN服务,然后客户端checkout,commit,update。

更详细的介绍请参考维基百科

什么是github

“github”:http://github.com/ 的标语是:”secure source code hosting and collaborative development”。一个基于git的类似google code的代码仓库,付费版的用户可以创建私有仓库,支持多人开发。很多项目都选择了github来保存代码,如”jQuery/reddit/RoR/CakePHP/Redis”等等。

github pages

先说说pages功能,blog就是在pages的基础上搭建的。如果英文不错的话,可以直接浏览此页

创建一个用户的页面很简单,假设你的用户名为foo

  1. 新建一个仓库(repository),名称填”foo.github.com”,创建
  2. 在本地新建一个文件夹,假如为foo,在foo里面新建一个index.html页面,随便输入点内容
  3. git init 初始化,git add . 把index.html加入到仓库中,git commit 提交修改
  4. 添加github的分支 git remote add origin git@github.com:foo/foo.github.com.git
  5. 提交到github分支 git push origin master

过1分钟左右,浏览foo.github.com,就可以看到刚刚创建的index.html文件了。

除了创建用户页面,还可以针对每个项目单独创建项目的主页,这不是本文的重点,有兴趣的可以浏览此页

创建blog

终于扯到正题上了(-,-),前面已经说过如何创建html页面,其实已经可以写博客了,创建一个index.html页面,在里面列出写过的文章,点击标题进去后又是一个手动创建的html页。就是太麻烦了,一点都不酷,说不定还会被MM鄙视。

github当然知道这个问题,所以他们创建了jekyll模板引擎 。简单来说,就是你可以用textile 或者markdown语法来写博客,提交到github后,会自动转换成html。

这里有很多网站/博客,都是基于github的jekyll模板开发的,如果觉得哪个不错,可以查看source。

先来看看这个仓库,里面有一些特殊的文件/文件夹:

_config.yml

存储了一些设置,大部分的设置都可以通过命令行指定,但放到配置文件里更方便些

_layouts

_layouts文件夹存放的是模板文件,文章会被渲染到这些模板里,变量指代的是文章内容

_posts

这里就是真正存放博客文章的地方了,文件命名要遵守这种格式:year-month-day-title.markup

_site

这个文件夹是程序生成的,如果本地没有安装jekyll的话,是不会有这个文件夹的,如果想要先本地预览一下,再提交到github,最好通过.gitignore把这个文件夹排除。

index.html

这个文件也有一个yaml前缀 ,可以指定使用哪个模板,标题等等,所有根文件夹下的.html/.htm/.textile/.markdown都会被解析。

other files/folders

上面没有列出的文件/文件夹都会被jekyll放到_site文件夹下,如css/image/script等等。

jekyll的安装

参考安装页 ,如果使用时提示”liquid requires RubyGems version >= 1.3.7”,可以在这里 下载对应的文件,安装即可。

安装完之后,为了避免路径调用问题,可以在apache/nginx里给对应的文件夹(/path/to/_site)绑定一个本地域名,如”lc.foo.github.com”,在终端里输入”jekyll –pygments”,然后就可以用该域名访问本地博客了,如果一切正常,再提交到github

PS:如果你之前的博客是基于wordpress/movable type/typo 4+,可以参考这篇迁移指南

绑定域名

这个就更简单了,新建一个CNAME文本文件,在里面输入域名,如”blog.leezhong.com”,然后在域名提供商里,指定该域名的CNAME为”foo.github.com”,搞定

添加评论功能

使用disqus ,整个注册和使用流程还是挺清晰易懂的,这里就不多说了。

参考文章

后记

之前一直用的wordpress,但是太臃肿了,而且有安全隐患,还得有一个PHP空间,访问速度也得不到保证。平时github用得比较多,正好他们提供”博客”服务,正合我意,初步使用下来,没有什么问题,能在本地用vim写textile语法的博客是一件多么爽的事情啊,还可以本地预览最终效果,数据也不会轻易丢失。

最后再次感谢github提供了这么好的服务,如果对github的创业历程感兴趣,可以参考这篇文章


--EOF--

若无特别说明,本站文章均为原创,转载请保留链接,谢谢