GCI.unescape предоставляет генерацию тегов <code>

def coderay(text)
 text.gsub(/\<pre( )?\="" lang="(.+?)">\<code( )?\="" lang="(.+?)">(.+?)\<\/code\>\<\/pre\>/m) do
  lang = $4
  text = CGI.unescapeHTML($5).gsub /\<code( )?\="" lang="(.+?)">|\<\/code\>/, ""
  text = text.gsub('<br />', "\n")
  text = text.gsub(/[\<]([\/])*([A-Za-z0-9])*[\>]/, '')
  text = text.gsub('>', ">")
  text = text.gsub('<', "<")
  text = text.gsub('&#160;', " ")
  text = text.gsub('&', "&")
  CodeRay.scan(text, lang).div(:css => :class)
 end
end

Выше генерируется это при последнем закрытии "конца":

</code(></code(></pre(>

Кто-нибудь знает почему? Я использую гемы CodeRay 1.1.0 и RedCloth 4.2.9. Версия Ruby: 2.1.1 и Rails 3.2.19. RefineryCMS 2.1.3 и их блог-движок.

Я думал, что эта линия была лекарством, но это не так:

text = CGI.unescapeHTML($5).gsub /\<code( )?\="" lang="(.+?)">|\<\/code\>/, ""

Отредактировано:

Это в файле show.html.erb:

<%= raw (coderay(RedCloth.new(render 'post').to_html)) %>

0 ответов

Другие вопросы по тегам