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.
-| id | name | age | gender |
|---|---|---|---|
| 1 | Roberta | @@ -149,7 +151,8 @@ describe Legislation::DraftVersion do25 | F |