diff --git a/app/labor/html_rouge.rb b/app/labor/html_rouge.rb deleted file mode 100644 index 9d29bc016..000000000 --- a/app/labor/html_rouge.rb +++ /dev/null @@ -1,12 +0,0 @@ -require "rouge/plugins/redcarpet" - -class HtmlRouge < Redcarpet::Render::HTML - include Rouge::Plugins::Redcarpet - - def link(link, _title, content) - # Probably not the best fix but it does it's job of preventing - # a nested links. - return nil if // =~ content - %(#{content}) - end -end diff --git a/app/labor/markdown_parser.rb b/app/labor/markdown_parser.rb index cac965072..ea2c7e666 100644 --- a/app/labor/markdown_parser.rb +++ b/app/labor/markdown_parser.rb @@ -11,7 +11,7 @@ class MarkdownParser def evaluate_markdown return if @content.blank? - renderer = HtmlRouge.new(hard_wrap: true, filter_html: false) + renderer = Redcarpet::Render::HTMLRouge.new(hard_wrap: true, filter_html: false) markdown = Redcarpet::Markdown.new(renderer, REDCARPET_CONFIG) tag_whitelist = %w(strong em p h1 h2 h3 h4 h5 h6 i u b code pre br ul ol li small sup sub img a span hr blockquote) @@ -23,7 +23,7 @@ class MarkdownParser def evaluate_limited_markdown return if @content.blank? - renderer = HtmlRouge.new(hard_wrap: true, filter_html: false) + renderer = Redcarpet::Render::HTMLRouge.new(hard_wrap: true, filter_html: false) markdown = Redcarpet::Markdown.new(renderer, REDCARPET_CONFIG) tag_whitelist = %w(strong i u b em p br) attribute_whitelist = %w(href strong em ref rel src title alt class) @@ -66,7 +66,7 @@ class MarkdownParser private def parse_it - renderer = HtmlRouge.new(hard_wrap: true, filter_html: false) + renderer = Redcarpet::Render::HTMLRouge.new(hard_wrap: true, filter_html: false) markdown = Redcarpet::Markdown.new(renderer, REDCARPET_CONFIG) catch_xss_attempts(@content) escaped_content = escape_liquid_tags_in_codeblock(@content) diff --git a/app/lib/redcarpet/render/html_rouge.rb b/app/lib/redcarpet/render/html_rouge.rb new file mode 100644 index 000000000..4bc9ecfa9 --- /dev/null +++ b/app/lib/redcarpet/render/html_rouge.rb @@ -0,0 +1,16 @@ +require "rouge/plugins/redcarpet" + +module Redcarpet + module Render + class HTMLRouge < HTML + include Rouge::Plugins::Redcarpet + + def link(link, _title, content) + # Probably not the best fix but it does it's job of preventing + # a nested links. + return nil if //.match?(content) + %(#{content}) + end + end + end +end diff --git a/app/models/display_ad.rb b/app/models/display_ad.rb index 38387c190..1b22e6392 100644 --- a/app/models/display_ad.rb +++ b/app/models/display_ad.rb @@ -9,7 +9,7 @@ class DisplayAd < ApplicationRecord private def process_markdown - renderer = HtmlRouge.new(hard_wrap: true, filter_html: false) + renderer = Redcarpet::Render::HTMLRouge.new(hard_wrap: true, filter_html: false) markdown = Redcarpet::Markdown.new(renderer) initial_html = markdown.render(body_markdown) stripped_html = ActionController::Base.helpers.sanitize initial_html.html_safe,