在介绍之前,先普及一下基础知识,大鸟们直接跳过。
什么是 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
- 新建一个仓库(repository),名称填”foo.github.com”,创建
- 在本地新建一个文件夹,假如为 foo,在 foo 里面新建一个 index.html 页面,随便输入点内容
git init
初始化,git add .
把 index.html 加入到仓库中,git commit
提交修改- 添加 github 的分支
git remote add origin [email protected]:foo/foo.github.com.git
- 提交到 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 文件夹存放的是模板文件,文章会被渲染到这些模板里,{{ content }}
变量指代的是文章内容
_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 的创业历程感兴趣,可以参考这篇文章