2015-10-14 2 views
2

Я пишу расширение для Redcarpet для сайта, основанного на Jekyll. Я хочу использовать {x|y} в качестве тега в методе уценки, который вычисляет тег HTML <ruby> (и его ассоциированные элементы). Я написал этот класс как на Jekyll's guide, Redcarpet's guide и this guide о том, как сделать это:синтаксическая ошибка, неожиданное ')', expecting '='

class Jekyll::Converters::Markdown::HotelDown < Redcarpet::Render::HTML 
    def preprocess(doc) 
     s = "<ruby><rb>\\1</rb><rp>(</rp><rt>\\2</rt><rp>)</rp></ruby>" 
     doc.gs­ub!(/\[([\­s\S]+)\|([­\s\S]+)\]/­, s) 
     doc 
    end 
end 

Но, я, кажется, получаю пару ошибок, когда я бегу bundle exec jekyll serve:

Configuration file: C:/Users/Alex/OneDrive/codes/hotelc.me/hotelc.me/_config.yml 
plugin_manager.rb:58:in `require': HotelDown.rb:4: syntax error, unexpected tIDENTIFIER, expecting ')' (SyntaxError) 
      doc.gs-ub!(/\[([\-s\S]+)\|([-\s\S]+)\]/-, s) 
                 ^
HotelDown.rb:4: syntax error, unexpected ')', expecting '=' 
      doc.gs-ub!(/\[([\-s\S]+)\|([-\s\S]+)\]/-, s) 
                  ^

Кажется, есть что-то не так с моим синтаксисом (дополнительное пространство, отсутствующие скобки или что-то в этом роде). Есть что-то, что я пропустил?

ответ

3

Вашего код имеет некоторые специальные символы, которые вызывают эту ошибку:

syntax error, unexpected ')', expecting '=' 
      doc.gs-ub!(/\[([\-s\S]+)\|([-\s\S]+)\]/-, s) 

Заменить текущий код с этим куском кода:

class Jekyll::Converters::Markdown::HotelDown < Redcarpet::Render::HTML 
    #Overriding the preprocess() function 
    def preprocess(doc) 
    s = "<ruby><rb>\\1</rb><rp>(</rp><rt>\\2</rt><rp>)</rp></ruby>" 
    doc.gsub!(/\[([\s\S]+)\|([\s\S]+)\]/, s) 
    doc 
    end 
end 

markdown = Redcarpet::Markdown.new(HotelDown) 

и он должен работать!

+1

Ах! Конечно: когда я впервые написал код, я случайно набрал некоторые символы, используя японскую клавиатуру. – HotelCalifornia

+1

Кроме того, мне было интересно, что эти тире в стеке были ... и теперь я знаю. Благодаря! – HotelCalifornia

+0

Вы больше всего приветствуетесь :) Рад, что он исправил вашу проблему. –

Смежные вопросы