Skip to content

Instantly share code, notes, and snippets.

@bsodmike
Created December 12, 2011 21:16
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bsodmike/1469141 to your computer and use it in GitHub Desktop.
Save bsodmike/1469141 to your computer and use it in GitHub Desktop.
Upgrading to Redcarpet v2.0 with highlighting of code blocks with Albino/Pygments
module ApplicationHelper
def markdown(text, *renderer)
rndr_flags = {
hard_wrap: true,
gh_blockcode: true,
safe_links_only: true,
filter_html: true
}
case renderer[0]
when :authored
rndr_flags[:filter_html] = false
else
rndr_flags.merge({:no_images => true, :no_styles => true})
end
rndr = HTMLwithAlbino.new(rndr_flags)
redcarpet = Redcarpet::Markdown.new(rndr, :space_after_headers => true,
:fenced_code_blocks => true, :autolink => true, :no_intra_emphasis => true,
:strikethrough => true, :superscripts => true)
redcarpet.render(text).html_safe
end
end
# create a custom renderer that allows highlighting of code blocks
class HTMLwithAlbino < Redcarpet::Render::HTML
def block_code(code, language)
Albino.colorize(code, language)
end
end
@bsodmike
Copy link
Author

Calling markdown without any arguments will assume publicly created content, hence, it filters out as much as possible; still doing Albino.colorize() instead of Albino.safe_colorize() as I haven't upgraded it yet.

@bsodmike
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment