diff --git a/lib/redcloth.rb b/lib/redcloth.rb index b614614c4..7e88007a6 100644 --- a/lib/redcloth.rb +++ b/lib/redcloth.rb @@ -295,6 +295,7 @@ class RedCloth < String @pre_list = [] rip_offtags text no_textile text + escape_html_tags text hard_break text unless @lite_mode refs text @@ -375,18 +376,18 @@ class RedCloth < String re = case rtype when :limit - /(\W) + /(^|[>\s]) (#{rcq}) (#{C}) (?::(\S+?))? - (\S.*?\S|\S) + ([^\s\-].*?[^\s\-]|\w) #{rcq} - (?=\W)/x + (?=[[:punct:]]|\s|$)/x else /(#{rcq}) (#{C}) (?::(\S+))? - (\S.*?\S|\S) + ([^\s\-].*?[^\s\-]|\w) #{rcq}/xm end [rc, ht, re, rtype] @@ -1128,5 +1129,11 @@ class RedCloth < String end end end + + ALLOWED_TAGS = %w(redpre pre) + + def escape_html_tags(text) + text.gsub!(%r{<((\/?)(\w+))}) {|m| ALLOWED_TAGS.include?($3) ? "<#{$1}" : "<#{$1}" } + end end