语法错误,意外的 ')',期待 '='
syntax error, unexpected ')', expecting '='
我正在为 Jekyll 支持的网站编写 Redcarpet 扩展。我想使用 {x|y}
作为 markdown 中的标签,评估为 HTML <ruby>
标签(及其关联)。我根据 Jekyll's guide, Redcarpet's guide, and this guide 写了这个 class 如何做到这一点:
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.gsub!(/\[([\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)
^
我的语法似乎有问题(额外的 space、缺少括号或类似的东西)。我错过了什么吗?
您的代码有一些特殊字符导致此错误:
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)
它应该可以工作!
我正在为 Jekyll 支持的网站编写 Redcarpet 扩展。我想使用 {x|y}
作为 markdown 中的标签,评估为 HTML <ruby>
标签(及其关联)。我根据 Jekyll's guide, Redcarpet's guide, and this guide 写了这个 class 如何做到这一点:
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.gsub!(/\[([\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)
^
我的语法似乎有问题(额外的 space、缺少括号或类似的东西)。我错过了什么吗?
您的代码有一些特殊字符导致此错误:
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)
它应该可以工作!