我正在尝试在我的新Macbook上使用Octopress(Jekyll上的博客引擎),当我运行bundle exec jekyll --server
时出现此错误:
(缩短路径)
/path/to/markdown.rb:118:in `to_html': wrong argument type String (expected Array) (TypeError)
from /path/to/markdown.rb:118:in `convert'
...
(完整路径)
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/jekyll-0.11.0/lib/jekyll/converters/markdown.rb:118:in `to_html': wrong argument type String (expected Array) (TypeError)
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/jekyll-0.11.0/lib/jekyll/converters/markdown.rb:118:in `convert'
...
看看第118行,我看到了:
RDiscount.new(content, *@rdiscount_extensions).to_html
如果我用“hello”之类的字符串替换此行,服务器就可以正常启动了。但是,如果我用RDiscount.new("hello").to_html
之类的东西替换它,我会得到同样的错误。但是,启动irb并运行RDiscount.new("hello").to_html
可以正常工作。
任何想法有什么不对?我能够在我拥有的另一台计算机上启动服务器,但我不知道如何弄清楚这两台计算机正在做什么之间的区别(某个库的某个版本不同?)。
答案 0 :(得分:3)
只是一个想法,但你有没有尝试更新你的gemset? jekyll的最新版本是0.11.2,它默认使用maruku而不是RDiscount。
答案 1 :(得分:1)
我要做的第一件事是检查所有版本。 ruby -v,gem -v,gem list -d sinatra,gem list -d octopress。等等,寻找差异。
答案 2 :(得分:0)
我也遇到了这个错误。我通过创建一个新的RVM gemset并重新运行bundle install来解决它。
另见https://github.com/rtomayko/rdiscount/issues/66
$ rvm gemset create gaga
'gaga' gemset created (/Users/chaffee/.rvm/gems/ruby-1.9.3-p125@gaga).
$ rvm use @gaga
Using /Users/chaffee/.rvm/gems/ruby-1.9.3-p125 with gemset gaga
$ bundle install
...
Installing rdiscount (1.6.8) with native extensions
...
$ irb
>> require 'rdiscount'
=> true
>> RDiscount.new("hello").to_html
=> "<p>hello</p>\n"