|
|
@ -70,33 +70,7 @@ class Formatter |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def format_markdown(html) |
|
|
|
def format_markdown(html) |
|
|
|
extensions = { |
|
|
|
html = reformat(markdown_formatter.render(html)) |
|
|
|
autolink: true, |
|
|
|
|
|
|
|
no_intra_emphasis: true, |
|
|
|
|
|
|
|
fenced_code_blocks: true, |
|
|
|
|
|
|
|
disable_indented_code_blocks: true, |
|
|
|
|
|
|
|
strikethrough: true, |
|
|
|
|
|
|
|
lax_spacing: true, |
|
|
|
|
|
|
|
space_after_headers: true, |
|
|
|
|
|
|
|
superscript: true, |
|
|
|
|
|
|
|
underline: true, |
|
|
|
|
|
|
|
highlight: true, |
|
|
|
|
|
|
|
footnotes: false, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
renderer = HTMLRenderer.new({ |
|
|
|
|
|
|
|
filter_html: false, |
|
|
|
|
|
|
|
escape_html: false, |
|
|
|
|
|
|
|
no_images: true, |
|
|
|
|
|
|
|
no_styles: true, |
|
|
|
|
|
|
|
safe_links_only: true, |
|
|
|
|
|
|
|
hard_wrap: true, |
|
|
|
|
|
|
|
link_attributes: { target: '_blank', rel: 'nofollow noopener' }, |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
markdown = Redcarpet::Markdown.new(renderer, extensions) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
html = reformat(markdown.render(html)) |
|
|
|
|
|
|
|
html.delete("\r").delete("\n") |
|
|
|
html.delete("\r").delete("\n") |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
@ -160,6 +134,36 @@ class Formatter |
|
|
|
|
|
|
|
|
|
|
|
private |
|
|
|
private |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def markdown_formatter |
|
|
|
|
|
|
|
return @markdown_formatter if defined?(@markdown_formatter) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extensions = { |
|
|
|
|
|
|
|
autolink: true, |
|
|
|
|
|
|
|
no_intra_emphasis: true, |
|
|
|
|
|
|
|
fenced_code_blocks: true, |
|
|
|
|
|
|
|
disable_indented_code_blocks: true, |
|
|
|
|
|
|
|
strikethrough: true, |
|
|
|
|
|
|
|
lax_spacing: true, |
|
|
|
|
|
|
|
space_after_headers: true, |
|
|
|
|
|
|
|
superscript: true, |
|
|
|
|
|
|
|
underline: true, |
|
|
|
|
|
|
|
highlight: true, |
|
|
|
|
|
|
|
footnotes: false, |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
renderer = HTMLRenderer.new({ |
|
|
|
|
|
|
|
filter_html: false, |
|
|
|
|
|
|
|
escape_html: false, |
|
|
|
|
|
|
|
no_images: true, |
|
|
|
|
|
|
|
no_styles: true, |
|
|
|
|
|
|
|
safe_links_only: true, |
|
|
|
|
|
|
|
hard_wrap: true, |
|
|
|
|
|
|
|
link_attributes: { target: '_blank', rel: 'nofollow noopener' }, |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@markdown_formatter = Redcarpet::Markdown.new(renderer, extensions) |
|
|
|
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
|
|
def html_entities |
|
|
|
def html_entities |
|
|
|
@html_entities ||= HTMLEntities.new |
|
|
|
@html_entities ||= HTMLEntities.new |
|
|
|
end |
|
|
|
end |
|
|
|