diff options
-rw-r--r-- | lib/redcloth3.rb | 10 | ||||
-rw-r--r-- | lib/redmine/wiki_formatting/textile/formatter.rb | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/lib/redcloth3.rb b/lib/redcloth3.rb index 2470fa5a9..fb9691631 100644 --- a/lib/redcloth3.rb +++ b/lib/redcloth3.rb @@ -1060,7 +1060,7 @@ class RedCloth3 < String codepre, used_offtags = 0, {} text.gsub!( OFFTAG_MATCH ) do |line| if $3 - offtag, aftertag = $4, $5 + first, offtag, aftertag = $3, $4, $5 codepre += 1 used_offtags[offtag] = true if codepre - used_offtags.length > 0 @@ -1068,9 +1068,13 @@ class RedCloth3 < String @pre_list.last << line line = "" else - htmlesc( aftertag, :NoQuotes ) if aftertag && escape_aftertag + ### htmlesc is disabled between CODE tags which will be parsed with highlighter + ### Regexp in formatter.rb is : /<code\s+class="(\w+)">\s?(.+)/m + ### NB: some changes were made not to use $N variables, because we use "match" + ### and it breaks following lines + htmlesc( aftertag, :NoQuotes ) if aftertag && escape_aftertag && !first.match(/<code\s+class="(\w+)">/) line = "<redpre##{ @pre_list.length }>" - $3.match(/<#{ OFFTAGS }([^>]*)>/) + first.match(/<#{ OFFTAGS }([^>]*)>/) tag = $1 $2.to_s.match(/(class\=\S+)/i) tag << " #{$1}" if $1 diff --git a/lib/redmine/wiki_formatting/textile/formatter.rb b/lib/redmine/wiki_formatting/textile/formatter.rb index ab66ba5b7..2010986f5 100644 --- a/lib/redmine/wiki_formatting/textile/formatter.rb +++ b/lib/redmine/wiki_formatting/textile/formatter.rb @@ -54,7 +54,7 @@ module Redmine content = @pre_list[$1.to_i] if content.match(/<code\s+class="(\w+)">\s?(.+)/m) content = "<code class=\"#{$1} CodeRay\">" + - CodeRay.scan($2, $1.downcase).html(:escape => false, :line_numbers => :inline) + CodeRay.scan($2, $1.downcase).html(:line_numbers => :inline) end content end |