Merge pull request #5136 from Meet-Democracy/Legislation-draft-render-markdown-tables
Render markdown tables in legislation draft
This commit is contained in:
@@ -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
48
lib/markdown_converter.rb
Normal 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
|
||||
Reference in New Issue
Block a user