当我遇到这个问题时,我正在为我的博客配置语法突出显示。 '''总是被转义......这是我的代码:
# in application_helper.rb
def coderay(content)
defaults = {...}
content.gsub!(/\<pre\>\<code class=\"(.+?)\"\>(.+?)\<\/code\><\/pre\>/m) do
CodeRay.scan($2, $1).div(defaults)
end
end
def markdown(text)
options = {...}
renderer = Redcarpet::Markdown.new(Redcarpet::Render::HTML, options)
coderay(renderer.render(text)).html_safe
end
#in view file
...
<%= markdown @post.body %>
...
一切正常,但双引号(“)总是被转义。试过很多方法,但都没有用。
任何帮助将不胜感激!
答案 0 :(得分:1)
最后,我使用了一种不那么“优雅”的方式来解决这个问题。以防其他人遇到这个问题。
我创建了一个新方法如下:
def unescape(content)
content.gsub!(/("|'|&|<|>)/) do
case $1
when """
'"'
when "'"
"'"
when "&"
"&"
when "<"
"<"
when ">"
">"
end
end
end
通常,这种方法只是做一些unescape。
在做CodeRay.scan($ 2,$ 1).div(默认值)之前,我使用unescape方法来取消$ 2,然后一切都很顺利。
如果有人知道更好的方法,请告诉我。