7

使用github作为博客引擎 - Limboy's HQ

 3 years ago
source link: https://limboy.me/2010/08/25/make-github-as-blog-engine/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

使用github作为博客引擎

2010-08-25

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

什么是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 [email protected]: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文件夹存放的是模板文件,文章会被渲染到这些模板里,{{ 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的创业历程感兴趣,可以参考这篇文章


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK