app/presenters/decidim/proposals/proposal_presenter.rb in decidim-proposals-0.18.0 vs app/presenters/decidim/proposals/proposal_presenter.rb in decidim-proposals-0.18.1

- old
+ new

@@ -6,10 +6,12 @@ # Decorator for proposals # class ProposalPresenter < SimpleDelegator include Rails.application.routes.mounted_helpers include ActionView::Helpers::UrlHelper + include ActionView::Helpers::SanitizeHelper + include Decidim::SanitizeHelper def author @author ||= if official? Decidim::Proposals::OfficialAuthorPresenter.new else @@ -39,16 +41,25 @@ # links - should render hashtags as links? # extras - should include extra hashtags? # # Returns a String. def title(links: false, extras: true, html_escape: false) - renderer = Decidim::ContentRenderers::HashtagRenderer.new(proposal.title) - renderer.render(links: links, extras: extras, html_escape: html_escape).html_safe + text = proposal.title + text = decidim_html_escape(text) if html_escape + + renderer = Decidim::ContentRenderers::HashtagRenderer.new(text) + renderer.render(links: links, extras: extras).html_safe end def body(links: false, extras: true, strip_tags: false) - renderer = Decidim::ContentRenderers::HashtagRenderer.new(proposal.body) - renderer.render(links: links, extras: extras, strip_tags: strip_tags).html_safe + text = proposal.body + text = strip_tags(text) if strip_tags + + renderer = Decidim::ContentRenderers::HashtagRenderer.new(text) + text = renderer.render(links: links, extras: extras).html_safe + + text = Anchored::Linker.auto_link(text, target: "_blank", rel: "noopener") if links + text end end end end