语法错误,意外的")",预期'='



我正在为jekyll powered网站的Redcarpet编写扩展。我想使用{x|y}作为markdown中的标记,其计算结果为HTML <ruby>标记(及其关联)。我按照《杰基尔指南》、《红毯指南》和以下指南来写这门课:

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!(/[([­sS]+)|([­sS]+)]/­, 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!(/[([-sS]+)|([-sS]+)]/-, s)
                                                        ^
HotelDown.rb:4: syntax error, unexpected ')', expecting '='
            doc.gs-ub!(/[([-sS]+)|([-sS]+)]/-, s)
                                                            ^

似乎我的语法有问题(一个额外的空格,缺少括号,或类似的东西)。我错过了什么吗?

你的代码中有一些特殊的字符导致了这个错误:

syntax error, unexpected ')', expecting '='
            doc.gs-ub!(/[([-sS]+)|([-sS]+)]/-, 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!(/[([sS]+)|([sS]+)]/, s)
    doc
  end
end
markdown = Redcarpet::Markdown.new(HotelDown)

,它应该工作!

相关内容

  • 没有找到相关文章

最新更新