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),在命令行工具中运行:
1 | cd C:\Ruby200-x64\_install\DevKit |
安装完Ruby和Devkit后就可以安装jekyll了:
1 | 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:
1 | gem uninstall pygments.rb --version "=0.5.2" |
这里注意,pygments.rb的版本可能已经不是0.5.2了,所以需要先查看pygments版本,简单的方法,可以先在ruby文件夹中搜索pygments.rb 会看到以版本名称命名的文件夹,如pygments.rb-0.5.4,然后再运行
1 | gem uninstall pygments.rb --version "=0.5.4" |
即可解决。
三,和第二个问题类似,提示
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
文件 (路径可能与此不同)中的
1 | self.content = File.read(File.join(base, name)) |
改为
1 | self.content = File.read(File.join(base, name), :encoding => "utf-8") |
hugo edit:
以上方法不适应新版jekyll-1.3.0了,这句代码已经被修改。最简单的方法是直接在cmd
里输入
1 | 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
1 | gem install rdiscount |
六,至此,jekyll的安装已经全部完成了,应该能正常运行。如果cmd那显示 Server address:http://0.0.0.0:4000
请不必理会,在浏览器中输入http://localhost:4000
即可访问。