Jekyll 官方网站是以外链的形式给出的 Windows 下安装 Jekyll 方法。这个方法总体上是可行的,但是这篇文章写于 2011 年,并且没有考虑中文环境下的问题,所以安装过程中会碰到种种问题。
一,软件版本问题。建议在 Windwos 7/8 64位中下载安装以下版本 Ruby 和 DevKit:
- Python 2.7.5 Windows X86-64 Installer
- Ruby 2.0.0-p247 (x64)
- DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
首先安装Python,设置Python.exe所在的目录到环境变量Path中;
接着安装Ruby(默认:C:\Ruby200-x64),然后解压Devkit到_install目录(C:\Ruby200-x64_install\DevKit),在命令行工具中运行:
cd C:\Ruby200-x64\_install\DevKit
ruby dk.rb init
ruby dk.rb install
安装完Ruby和Devkit后就可以安装jekyll了:
gem install jekyll
注:如果提示无法下载数据,请给Ruby.exe设置代理。
二,进入网站所在的目录,如:E:\GitHub\oxox.github.io
,然后运行:jekyll serve
即可。
运行 jekyll serve
时显示
Liquid Exception: No such file or directory - /bin/sh in ...
这个是语法高亮插件 Pygments 引起。解决方法是卸载最新版本的 Pygments (0.5.1+),重新安装 0.5.0 版本的 Pygments:
gem uninstall pygments.rb --version "=0.5.2"
gem install pygments.rb --version "=0.5.0"
这里注意,pygments.rb的版本可能已经不是0.5.2了,所以需要先查看pygments版本,简单的方法,可以先在ruby文件夹中搜索pygments.rb 会看到以版本名称命名的文件夹,如pygments.rb-0.5.4,然后再运行
gem uninstall pygments.rb --version "=0.5.4"
gem install pygments.rb --version "=0.5.0"
即可解决。
三,和第二个问题类似,提示
Liquid Exception: No such file or directory - python ...
原因是没将 Python 的路径添加为 PATH 环境变量。
四,运行 jekyll serve
不成功,显示
... invalid byte sequence in GBK ...
这个是中文编码引起的问题。一旦 post 中有中文字符就会出现这样的问题。当然这个是 Windows 下特有的问题。解决方法是将 C:\Ruby200-x64\lib\ruby\gems\2.0.0\gems\jekyll-1.1.2\lib\jekyll\convertible.rb
文件 (路径可能与此不同)中的
self.content = File.read(File.join(base, name))
改为
self.content = File.read(File.join(base, name), :encoding => "utf-8")
hugo edit:
以上方法不适应新版jekyll-1.3.0了,这句代码已经被修改。最简单的方法是直接在cmd
里输入
chcp 65001
即可解决问题。 ...参考:https://github.com/twbs/bootstrap Windows users: run chcp 65001 first to change the command prompt's character encoding (code page) to UTF-8 so Jekyll runs without errors. ...
五,如果你的_config.yml中配置了rdiscount做为markdown的解析器,别忘了安装rdiscount
gem install rdiscount
六,至此,jekyll的安装已经全部完成了,应该能正常运行。如果cmd那显示 Server address:http://0.0.0.0:4000
请不必理会,在浏览器中输入http://localhost:4000
即可访问。