Merge pull request #5136 from Meet-Democracy/Legislation-draft-render-markdown-tables

Render markdown tables in legislation draft
This commit is contained in:
Javi Martín
2023-06-30 00:09:33 +02:00
committed by GitHub
9 changed files with 240 additions and 27 deletions

View File

@@ -1,6 +1,6 @@
class AdminLegislationSanitizer < WYSIWYGSanitizer
def allowed_tags
super + %w[img h1 h4 h5 h6]
super + %w[img h1 h4 h5 h6 table thead tbody tr th td]
end
def allowed_attributes

48
lib/markdown_converter.rb Normal file
View File

@@ -0,0 +1,48 @@
class MarkdownConverter
attr_reader :text, :render_options
def initialize(text, **render_options)
@text = text
@render_options = render_options
end
def render
return text if text.blank?
AdminLegislationSanitizer.new.sanitize(Redcarpet::Markdown.new(renderer, extensions).render(text))
end
def render_toc
Redcarpet::Markdown.new(toc_renderer).render(text)
end
private
def renderer
Redcarpet::Render::HTML.new(default_render_options.merge(render_options))
end
def toc_renderer
Redcarpet::Render::HTML_TOC.new(with_toc_data: true)
end
def default_render_options
{
filter_html: false,
hard_wrap: true,
link_attributes: { target: "_blank" }
}
end
def extensions
{
autolink: true,
fenced_code_blocks: true,
lax_spacing: true,
no_intra_emphasis: true,
strikethrough: true,
superscript: true,
tables: true
}
end
end