From 79120209da24f444a2bd6b6d9c01678c7612d00e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 29 Jun 2023 17:25:27 +0200 Subject: [PATCH] Use the same extensions in all markdown renderers We were using two different sets of extensions but, since the markdown code is always written by administrators, IMHO it makes sense to be consistent and always render markdown code the same way. --- app/helpers/application_helper.rb | 10 ++++++---- app/models/legislation/draft_version.rb | 10 +--------- spec/models/legislation/draft_version_spec.rb | 9 ++++++--- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3b2b25315..d5afea8cc 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,22 +10,24 @@ module ApplicationHelper %i[ar fa he].include?(locale) end - def markdown(text) + def markdown(text, **render_options) return text if text.blank? - render_options = { + default_render_options = { filter_html: false, hard_wrap: true, link_attributes: { target: "_blank" } } - renderer = Redcarpet::Render::HTML.new(render_options) + renderer = Redcarpet::Render::HTML.new(default_render_options.merge(render_options)) + extensions = { autolink: true, fenced_code_blocks: true, lax_spacing: true, no_intra_emphasis: true, strikethrough: true, - superscript: true + superscript: true, + tables: true } AdminLegislationSanitizer.new.sanitize(Redcarpet::Markdown.new(renderer, extensions).render(text)) diff --git a/app/models/legislation/draft_version.rb b/app/models/legislation/draft_version.rb index 7dd36dfa0..f470a51f1 100644 --- a/app/models/legislation/draft_version.rb +++ b/app/models/legislation/draft_version.rb @@ -22,15 +22,7 @@ class Legislation::DraftVersion < ApplicationRecord scope :published, -> { where(status: "published").order("id DESC") } def body_html - render_options = { - with_toc_data: true - } - renderer = Redcarpet::Render::HTML.new(render_options) - extensions = { - tables: true - } - - Redcarpet::Markdown.new(renderer, extensions).render(body) + ApplicationController.helpers.markdown(body, with_toc_data: true) end def toc_html diff --git a/spec/models/legislation/draft_version_spec.rb b/spec/models/legislation/draft_version_spec.rb index 59e29d67f..58123c837 100644 --- a/spec/models/legislation/draft_version_spec.rb +++ b/spec/models/legislation/draft_version_spec.rb @@ -129,14 +129,16 @@ describe Legislation::DraftVersion do

Something about this.

- +
+ - + + @@ -149,7 +151,8 @@ describe Legislation::DraftVersion do -
id name age gender
1 Roberta25 F
+ + BODY_HTML end