Skip to content

Commit fbb8e43

Browse files
committed
feat(MarkdownBuilder): add AA markdown builder
1 parent 38fdd8b commit fbb8e43

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
require 'redcarpet'
2+
3+
module ActiveAdminAddons
4+
class MarkdownBuilder < CustomBuilder
5+
def render
6+
return if data.blank?
7+
8+
Redcarpet::Markdown.new(renderer, extensions).render(@data).html_safe
9+
end
10+
11+
private
12+
13+
def extensions_default
14+
{ fenced_code_blocks: true,
15+
no_intra_emphasis: true,
16+
strikethrough: true,
17+
superscript: true }
18+
end
19+
20+
def renderer_options_default
21+
{ filter_html: true, hard_wrap: true }
22+
end
23+
24+
def extensions
25+
@extensions ||= extensions_default.merge(options[:extensions] || {})
26+
end
27+
28+
def render_options
29+
@render_options ||= renderer_options_default.merge(options[:render_options] || {})
30+
end
31+
32+
def renderer
33+
@renderer ||= Redcarpet::Render::HTML.new(render_options)
34+
end
35+
end
36+
end
37+
38+
ActiveAdminAddons::MarkdownBuilder.create_view_methods

0 commit comments

Comments
 (0)