Sha256: 4bc8fed968ee0d30f9295a56ac9ba71122c05ec0701c4aed360ae02482303153
Contents?: true
Size: 1.29 KB
Versions: 3
Compression:
Stored size: 1.29 KB
Contents
require "github/markup/implementation" module GitHub module Markup class Markdown < Implementation MARKDOWN_GEMS = { "github/markdown" => proc { |content| GitHub::Markdown.render(content) }, "redcarpet" => proc { |content| Redcarpet::Markdown.new(Redcarpet::Render::HTML).render(content) }, "rdiscount" => proc { |content| RDiscount.new(content).to_html }, "maruku" => proc { |content| Maruku.new(content).to_html }, "kramdown" => proc { |content| Kramdown::Document.new(content).to_html }, "bluecloth" => proc { |content| BlueCloth.new(content).to_html }, } def initialize super(/md|rmd|mkdn?|mdwn|mdown|markdown|litcoffee/i) end def load return if @renderer MARKDOWN_GEMS.each do |gem_name, renderer| if try_require(gem_name) @renderer = renderer return end end raise LoadError, "no suitable markdown gem found" end def render(content) load @renderer.call(content) end private def try_require(file) require file true rescue LoadError false end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
github-markup-1.3.3 | lib/github/markup/markdown.rb |
github-markup-1.3.2 | lib/github/markup/markdown.rb |
github-markup-1.3.1 | lib/github/markup/markdown.rb |