diff options
Diffstat (limited to 'lib/redmine/wiki_formatting.rb')
-rw-r--r-- | lib/redmine/wiki_formatting.rb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/redmine/wiki_formatting.rb b/lib/redmine/wiki_formatting.rb index b6b2ff802..e9f5eb749 100644 --- a/lib/redmine/wiki_formatting.rb +++ b/lib/redmine/wiki_formatting.rb @@ -1,4 +1,5 @@ require 'redcloth' +require 'coderay' module Redmine module WikiFormatting @@ -24,7 +25,22 @@ module Redmine def hard_break( text ) text.gsub!( /(.)\n(?!\n|\Z| *([#*=]+(\s|$)|[{|]))/, "\\1<br />" ) if hard_breaks end - + + # Patch to add code highlighting support to RedCloth + def smooth_offtags( text ) + unless @pre_list.empty? + ## replace <pre> content + text.gsub!(/<redpre#(\d+)>/) do + content = @pre_list[$1.to_i] + if content.match(/<code\s+class="(\w+)">\s?(.+)/m) + content = "<code class=\"#{$1} CodeRay\">" + + CodeRay.scan($2, $1).html(:escape => false, :line_numbers => :inline) + end + content + end + end + end + AUTO_LINK_RE = %r{ ( # leading text <\w+.*?>| # leading HTML tag, or |