From: Tom Hughes Date: Thu, 24 Mar 2016 08:36:32 +0000 (+0000) Subject: Allow redcarpet to add nofollow to links X-Git-Tag: live~3890 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/4e95ff17078f54866a85a3702948506bfd67acf8 Allow redcarpet to add nofollow to links This, using a new feature in redcarpet, allows us to avoid having to subclass the renderer and implement links ourselves, which in turn means that redcarpet's link sanitisation works. --- diff --git a/lib/rich_text.rb b/lib/rich_text.rb index 9e43ed29c..83eb23540 100644 --- a/lib/rich_text.rb +++ b/lib/rich_text.rb @@ -80,26 +80,12 @@ module RichText end def self.html_renderer - @html_renderer ||= Renderer.new(:filter_html => true, :safe_links_only => true) + @html_renderer ||= Redcarpet::Render::XHTML.new(:filter_html => true, :safe_links_only => true, :link_attributes => { :rel => "nofollow" }) end def self.html_parser @html_parser ||= Redcarpet::Markdown.new(html_renderer, :no_intra_emphasis => true, :autolink => true, :space_after_headers => true) end - - class Renderer < Redcarpet::Render::XHTML - def link(link, _title, alt_text) - "#{alt_text}" - end - - def autolink(link, link_type) - if link_type == :email - "#{link}" - else - "#{link}" - end - end - end end class Text < Base