6

我试图让 Jekyll 在 Windows 上工作,但没有运气。这是我第一次安装/使用 Ruby。

当我将 pygments 设置为 false 时,错误消失了_config.yml

错误信息

D:\Code\Jekyll\test>jekyll serve
Configuration file: D:/Code/Jekyll/test/_config.yml
            Source: D:/Code/Jekyll/test
       Destination: D:/Code/Jekyll/test/_site
      Generating...   Liquid Exception: cannot load such file -- yajl/2.0/yajl in 2013-05-11-welcome-to-jekyll.markdown
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/yajl-ruby-1.1.0-x86-mingw32/lib/yajl/yajl.rb:2:in `<top (required)>'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/yajl-ruby-1.1.0-x86-mingw32/lib/yajl.rb:1:in `<top (required)>'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pygments.rb-0.4.2/lib/pygments/popen.rb:3:in `<top (required)>'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/pygments.rb-0.4.2/lib/pygments.rb:1:in `<top (required)>'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/tags/highlight.rb:52:in `render_pygments'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/tags/highlight.rb:45:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:106:in `block in render_all'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:93:in `each'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:93:in `render_all'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/block.rb:82:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/template.rb:124:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/liquid-2.5.0/lib/liquid/template.rb:132:in `render!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/convertible.rb:77:in `render_liquid'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/convertible.rb:128:in `do_layout'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/post.rb:285:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:230:in `block in render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:229:in `each'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:229:in `render'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/site.rb:44:in `process'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/command.rb:18:in `process_site'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/commands/build.rb:23:in `build'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/lib/jekyll/commands/build.rb:7:in `process'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/jekyll-1.0.1/bin/jekyll:83:in `block (2 levels) in <top (required)>'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/command.rb:180:in `call'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/command.rb:180:in `call'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/command.rb:155:in `run'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/runner.rb:402:in `run_active_command'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/runner.rb:66:in `run!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/delegates.rb:7:in `run!'
C:/Ruby200/lib/ruby/gems/2.0.0/gems/commander-4.1.3/lib/commander/import.rb:10:in `block in <top (required)>'
Build Failed
4

7 回答 7

12

我做了以下

gem install rouge

然后在 _config.yml中添加以下行

highlighter: rouge

我从以下页面的评论线程中找到了这个解决方案 https://github.com/jekyll/jekyll-help/issues/50

于 2014-06-09T23:12:32.480 回答
2

问题正如评论中提到的@scriptin。

我安装了 ruby​​ v 1.9.3,它解决了我的问题。

于 2013-05-11T22:39:30.743 回答
2

只需在_config.yml中添加以下行

highlighter: false

现在浏览到 localhost:4000

于 2014-09-02T05:57:00.563 回答
1

我今天在尝试设置 Octopress/Jekyll 时遇到了类似的问题。

这是我找到的解决方案。

步骤1

转到您的 ruby​​ gems 目录。就我而言,它位于C:/Ruby21/lib/ruby/gems/2.1.0/gems

寻找亚吉尔。

图像1

您将看到一个名为yajl-ruby-1.1.0-x86-mingw32

您可能会或可能不会看到一个叫yajl-ruby-1.2.1

带有-ruby-1.1.0-x86-mingw32尾部的那个是默认设置。并导致错误。

我们要使用的是另一个版本

第2步

如果您没有none mingw32版本,请运行

gem install yajl-ruby

这将安装最新版本。

就我而言,最新版本是 1.2.1

第 3 步

将默认值从mingw32版本更改为当前版本。

为此,请转到您网站的gemfile.lock文件

找到写着的那一行yajl-ruby (1.1.0-x86-mingw32)

并将其更改为yajl-ruby (1.2.1)

或您下载的相应版本

img_before img_after

第4步

而已。它现在应该可以工作了。

于 2014-12-13T08:37:11.463 回答
0

您可以通过手动编辑给出错误的文件来解决它,看起来像这样。

RUBY_VERSION =~ /(\d+.\d+)/ 需要 "yajl"

于 2014-02-21T15:44:20.910 回答
0

其他提议的解决方案似乎要么关闭代码​​突出显示,要么将其设置为使用 Rouge 而不是 Pygments。我需要使用 Pygments,因为它有更好的语言支持。

https://github.com/brianmario/yajl-ruby/issues/116中所述,出现此问题是因为预编译的 yajl 不适用于 Ruby 2.0。它需要编译。为了使这项工作,您可以使用 pygments:

  1. 卸载预编译的 yajl-ruby gem。
  2. 使用该 github 线程中显示的语法安装它。请注意,您可能需要指定版本。就我而言,Jekyll 特别想要 1.1.0,所以我使用以下语法安装:

gem install yajl-ruby --platform=ruby --version=1.1.0

完成此操作后,Jekyll 无需禁用代码突出显示或切换到 Rouge 即可工作。

于 2014-12-06T18:33:37.653 回答
0

安装 Yajl 1.2.0。似乎是 1.2.1 的一个错误。

gem install yajl-ruby --version=1.2.0 --platform=ruby

问题解决了。

我不确定平台部分是否像其他人认为的那样重要,但这对我有用。

于 2016-01-12T06:14:48.237 回答