January 5th, 2013
Github建站系列教程

本系列文章将一步步教你如何在GitHub上创建自己的博客或主页,事实上相关的文章网上有很多,这里只是把自己的经验分享给新手,方便他们逐步开始GitHub之旅。本篇介绍如何在本地搭建一个GitHub的服务端以便发布前测试。前几篇介绍了GitHub-Page的基本原理和使用方法,还介绍了如何将购买的域名绑定博客主页。然而,当需要正儿八经的将一个博客构建起来,不仅要知道如何上传我们的文件,还要能够高效的更好的设计博客。因此,必须能够在上传之前在本地完成测试;另一方面,完全靠html来编辑博客,显然工作量太大,随着博客越来越复杂,简直不可能维护,因此,需要用jekyll这个模板引擎来帮忙。本篇先介绍如何搭建一个本地的测试环境。

一些更新

  • 根据网友的反应,需要注意的是Ruby的版本和RubyDevKit的版本要对应,不要装错;
  • 另外,目前新版的Ruby自带gem了,所以gem安装可以跳过;
  • 由于国内的网络(你们懂的),gem官方的源基本上是没法用了,参考文中的链接,使用淘宝的镜像比较靠谱;
  • jekyll有一个问题,可能需要修改下面这个文件,否则会出现GBK错误
    • D:\Ruby193\lib\ruby\gems\1.9.1\gems\jekyll-1.2.1\lib\jekyll\convertible.rb 将它改成 self.content = File.read(File.join(base, name),:encoding => “utf-8”) D:\Ruby193\lib\ruby\gems\1.9.1\gems\jekyll-1.2.1\lib\jekyll\tags\include.rb中的最后几行的地方改成 File.read_with_options(file,:encoding => “utf-8”)
  • GBK错误也可以通过在_config.yml中添加配置encoding: utf-8修复 最新的jekyll修改了命令行参数,需使用如下命令行 jekyll serve –safe –watch jekyll 1.4.3在windows下本地生成的时候可能会出现’fileutils.rb:247:in mkdir Invalid argument’的错误,详见Jekyll 1.4.3 mkdir Invalid argument jekyll 1.4.3在–watch参数的情况下可能会出现cannot load such file -- wdm (LoadError)的错误,用gem安装wdm就好了: gem install wdm

Ruby安装

jekyll本身基于Ruby开发,因此,想要在本地构建一个测试环境需要具有Ruby的开发和运行环境。在windows下,可以使用Rubyinstaller安装。ruby安装说明

windows的安装还是一如既往的“无脑”,不多说了。

如果想要快速体验ruby开发,可以参考:20分钟体验 Ruby

RubyDevKit安装

从这里下载DevKit,注意版本要与Ruby版本一致

下载下来的是一个很有意思的sfx文件,如果你安装有7-zip,可以直接双击,它会自解压到你所选择的目录。

解压完成之后,用cmd进入到刚才解压的目录下,运行下面命令,该命令会生成config.yml。(这种安装方式让我想起了,linux下安装三步走config->make->make install中的config)

$ruby dk.rb init

config.yml文件实际上是检测系统安装的ruby的位置并记录在这个文件中,以便稍后使用。但上面的命令只针对使用rubyinstall安装的ruby有效,如果是其他方式安装的话,需要手动修改config.yml。我生成的config.yml文件内容如下:(注意路径用的是linux的斜杠方向)

# This configuration file contains the absolute path locations of all
# installed Rubies to be enhanced to work with the DevKit. This config
# file is generated by the 'ruby dk.rb init' step and may be modified
# before running the 'ruby dk.rb install' step. To include any installed
# Rubies that were not automagically discovered, simply add a line below
# the triple hyphens with the absolute path to the Ruby root directory.
#
# Example:
#
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
#
---
- C:/Ruby193

最后,执行如下命令,执行安装:

$ruby setup.rb

如果没有setup.rb的话,执行:

$ruby dk.rb install

Rubygems

Rubygems是类似Radhat的RPM、centOS的Yum、Ubuntu的apt-get的应用程序打包部署解决方案。Rubygems本身基于Ruby开发,在Ruby命令行中执行。我们需要它主要是因为jekyll的执行需要依赖很多Ruby应用程序,如果一个个手动安装比较繁琐。jekyll作为一个Ruby的应用,也实现了Rubygems打包标准。只要通过简单的命令就可以自动下载其依赖。

gems下载地址

解压后,用cmd进入到解压后的目录,执行命令即可:

$ruby setup.rb

就像yum仓库一样,仓库本身有很多,如果希望加快应用程序的下载速度,特别绕过“天朝”的网络管理制度,可以选择国内的仓库镜像,taobao有一个:https://ruby.taobao.org/。配置方法这个链接里面很完全。

安装jekyll

有了上面的基础,安装jekyll就十分轻松了,执行下面gem命令即可全自动搞定:

$gem install jekyll

jekyll依赖的组件会自动下载安装

测试jekyll服务

安装好之后就可以测试我们的环境了。用cmd进入到上一节我们创建的目录,执行下面命令:

$jekyll serve --safe --watch

jekyll此时会在localhost的4000端口监听http请求,用浏览器访问http://localhost:4000/index.html,之前的页面出现了!


1块2块也是钱,小额赞助