2012-04-14 15 views
6

Tôi đang cố gắng sử dụng Octopress (một động cơ viết blog trên đầu trang của Jekyll) trên Macbook mới của tôi, và tôi nhận được lỗi này khi tôi chạy bundle exec jekyll --server:loại sai lập luận String (Mảng dự kiến)

(rút ngắn đường dẫn)

/path/to/markdown.rb:118:in `to_html': wrong argument type String (expected Array) (TypeError) 
from /path/to/markdown.rb:118:in `convert' 
... 

(đường dẫn đầy đủ)

/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' 
... 

nhìn vào dòng 118, tôi thấy:

RDiscount.new(content, *@rdiscount_extensions).to_html 

Nếu tôi thay thế dòng này bằng chuỗi như "hello", máy chủ khởi động tốt. Nhưng nếu tôi thay thế nó bằng một cái gì đó như RDiscount.new("hello").to_html, tôi nhận được cùng một lỗi. Tuy nhiên, khởi động irb và chạy RDiscount.new("hello").to_html hoạt động tốt.

Bất kỳ ý tưởng nào sai? Tôi có thể khởi động máy chủ trên một máy tính khác mà tôi có, nhưng tôi không chắc chắn làm thế nào để tìm ra sự khác biệt giữa hai máy tính đang làm gì (một phiên bản khác của một số thư viện ở đâu đó?).

+0

Rất lẻ. Có lẽ thử chuyển sang [kramdown] (http://kramdown.rubyforge.org/) thay vì RDiscount? – Phrogz

Trả lời

3

Chỉ là một ý nghĩ, nhưng bạn đã thử cập nhật gemset chưa? Phiên bản mới nhất của jekyll là 0.11.2 và nó sử dụng maruku theo mặc định thay vì RDiscount.

https://github.com/mojombo/jekyll/wiki/Install

+0

Vâng, tôi đã thử cập nhật đá quý của mình (IIRC, tôi đã tự chuyển sang RDiscount thay vì Maruku vì hỗ trợ LaTeX, theo một số jekyll <-> hướng dẫn LaTeX mà tôi đã theo dõi ở đâu đó). – grautur

1

Điều đầu tiên tôi muốn làm là rà soát tất cả các phiên bản. ruby -v, gem -v, danh sách đá quý -d sinatra, gem list -d octopress. vv và tìm sự khác biệt.

0

Tôi cũng gặp lỗi này. Tôi đã giải quyết nó bằng cách tạo một tập hợp RVM mới và cài đặt lại gói.

cũng Xem https://github.com/rtomayko/rdiscount/issues/66

$ rvm gemset create gaga 
'gaga' gemset created (/Users/chaffee/.rvm/gems/[email protected]). 
$ 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"