Github提供的Pages服务可以把相关的静态文件组合成一个博客站点。它不需要数据库,使用Git来管理博客的版本。你在本地写好文章(无需网络链接),在本地预览的文章效果,提交到Git仓库。发布文章的时候只需要Git Push一下就可以了。Github Pages是免费的,不限流量,而且速度非常快。
Github Pages使用Jekyll,是一个简洁的静态网站生成器, 来提供博客服务。Jekyll使用一个模板目录作为网站布局的基础框架,并在其上运行Textile,Markdown或Liquid标记语言的转换器,最终生成一个完整的静态Web站点,可以被放置在Apache或者你喜欢的其他任何Web服务器上。所以我们可以使用各种编辑器用Markdown语法来写博文。
配置过程:
Github
- 安装Git以及Git的使用请参考这里
- 在Github上创建一个新的repo来管理blog,这个repos的名字必须是USERNAME.github.com。 如果你还没有Github账号,那请先注册一个。
- 把这个新的repo clone到本地。
Jekyll
Jekyll是基于Ruby实现的,所以安装Jekyll之前,需要先安装Ruby,以及Ruby的包管理工具gem。
- 安装Ruby及Gem,请参考这里。
- 执行如下命令安装Jekyll
gem install jekyll
- 手动配置Jekyll站点 一个Jekyll站点具有如下结构:
|-- _config.yml |-- _includes |-- _layouts |-- default.html | -- post.html |-- _posts | -- 2007-10-29-why-every-programmer-should-play-nethack.textile | -- 2009-04-26-barcamp-boston-4-roundup.textile |-- _site |-- index.html
具体过程请参考这里
其实更快捷的做法是找到一个你喜欢的博客,然后把它clone下来,改成你自己的。Jekyll在这里列出了许多使用Jekyll的博客,可以打开看看,找到一个喜欢的主题风格,然后cone下来把它改成你自己的。我也是在网上找了好久,才发现现在这个主题(@imkerberos)是自己比较喜欢的,所以我在这里也借用一下。
4.Jekyll的配置
主要的配置文件是config.yml。在config.yml中除了可以设置博客的常规信息之外,还默认自带了一些常用功能,如评论(disqus)、Analytics跟踪(Google Analytics)等等。详细教程见这里。
5.注意事项
Jekyll在处理中文的时候会有问题,解决方法:
- 中文文件一定要保存为UTF-8格式
- 设置环境变量:
LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
本地预览
在你的repo目录下,运行
jekyll --server
,然后再在浏览器里访问localhost:4000,就可以看到你的博客网站了。
发布博客
- 把改好的Jekyll站点copy到前面clone到本地的USERNAME.github.com目录里,覆盖里面的内容。注意不要拷贝.git目录。
- 在USERNAME.github.com目录/_posts/目录下创建你的博文。博文的文件名必须遵循下面的格式:YYYY-MM-DD-title.md
- 在当前目录提交所有的改到到Git
- git push USERNAME.github.com 到origin master分支。
- 10分钟左右,就可以访问http://USERNAME.github.com来 访问你的博客了。
以后写博客就只需要在_posts下新建一个Markdown文件,然后在把这个文件提交,push到Github,就可以完成发布了。
其他选择
如果你对Git不太熟,可以考虑使用octopress, octopres使用rake的任务来完成常见的git操作。 不过遗憾的是octopress push到Github上不是原始的markdown页面,而是翻译后的html,这样你需要一个额外的branch来保存原始的markdown博文,个人觉得不太方便。