在Windows上建立Jekyll平台

为了本地调试搭建好的博客,我们得在当前机器上安装一个Jekyll服务,在本地生成完毕后再把更新push到github上面。 笔者主要的开发环境是在Windows上,但Jekyll官方文档并没有提供在Windows上面安装的方法。 按照网上的各种教程,总算是成功在Win 7/8上面搭建成功了Jekyll。相对于Mac和Ubuntu(Debian),在Windows上部署Jekyll有一些额外的修改。 为了给后来人提供方便,这篇文章我就介绍一下如何一步一步在Windows 7 x64上搭建一个支持中文的Jekyll系统。


首先, 从官网上下载Ruby on WindowsRuby DevKitPython 2.7。 下载页:http://rubyinstaller.org/downloads/。在写这篇文章的时候,作者安装的分别是: Ruby 2.0.0-p195 (x64)DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe

Warning! 注意,Jekyll现在不支持Python 3.0+版本!
Notice! 安装好Ruby和Python后,别忘了把可执行文件夹加入到PATH下面。

安装好上述的文件包后,以管理员模式打开控制台,进入Ruby DevKit的目录下(比如D:\rubydevkit),执行下面的语句,对DevKit初始化:

D:\rubydevkit\>ruby dk.rb init

然后,继续安装:

D:\rubydevkit>ruby dk.rb install

接下来,设置gem环境,删除默认的下载源,然后把下载源改成淘宝的镜像(原因你懂的)。

D:\rubydevkit>gem sources --remove https://rubygems.org/
D:\rubydevkit>gem sources -a http://ruby.taobao.org/
D:\rubydevkit>gem sources -l
*** CURRENT SOURCES ***

http://ruby.taobao.org
# 请确保只有 ruby.taobao.org
D:\rubydevkit>gem install rails

现在就可以在gem环境下安装Jekyll了,执行:

D:\rubydevkit>gem install jekyll

Warning!

现在还没有完! 为了确保Jekyll能正确使用,我们还得对Jekyll的代码加上两个补丁。

1,Jekyll的header和tag默认不支持UTF-8,我们需要修改以下两个文件:

--- rubypath\lib\ruby\gems\2.0.0\gems\jekyll-1.0.2\lib\jekyll\convertible.rb
+++ rubypath\lib\ruby\gems\2.0.0\gems\jekyll-1.0.2\lib\jekyll\convertible.rb
@@ 搜索替换下面这行
-   source = File.read(@file)
+   source = File.read(@file, :encoding => "utf-8")

--- rubypath\lib\ruby\gems\2.0.0\gems\jekyll-1.0.2\lib\jekyll\tags\include.rb
+++ rubypath\lib\ruby\gems\2.0.0\gems\jekyll-1.0.2\lib\jekyll\tags\include.rb
-   self.content = File.read(File.join(base, name))
+   self.content = File.read(File.join(base, name), :encoding => "utf-8")

2,修复Windows上面关于分页的问题:

--- rubypath\lib\ruby\gems\2.0.0\gems\jekyll-1.0.2\lib\jekyll\generators\pagination.rb
+++ rubypath\lib\ruby\gems\2.0.0\gems\jekyll-1.0.2\lib\jekyll\generators\pagination.rb
@@ -92,8 +92,9 @@ def self.subdirectories_identical(paginate_path, page_dir)
-   format = File.basename(site_config['paginate_path'])
-   format.sub(':num', num_page.to_s)

+   format = site_config['paginate_path']
+   format = format.sub(':num', num_page.to_s)
+   File.basename(format)

Done!

这应该就是所有要做的工作了。/dance

参考文档

  1. windows下安装jekyll
  2. Fixing pagination on windows
  3. Jekyll遭遇编码问题
  4. RubyGem淘宝镜像
  5. 像黑客一样写博客——Jekyll入门 推荐阅读