26 lines
744 B
Ruby
26 lines
744 B
Ruby
|
# frozen_string_literal: true
|
||
|
#
|
||
|
# This pulls in https://github.com/gettalong/kramdown/pull/708 for kramdown v2.3.0.
|
||
|
# Remove this file when that pull request is merged and released.
|
||
|
require 'kramdown/converter'
|
||
|
require 'kramdown/converter/syntax_highlighter/rouge'
|
||
|
|
||
|
module Kramdown::Converter::SyntaxHighlighter
|
||
|
module Rouge
|
||
|
def self.formatter_class(opts = {})
|
||
|
case formatter = opts[:formatter]
|
||
|
when Class
|
||
|
formatter
|
||
|
when /\A[[:upper:]][[:alnum:]_]*\z/
|
||
|
::Rouge::Formatters.const_get(formatter, false)
|
||
|
else
|
||
|
# Available in Rouge 2.0 or later
|
||
|
::Rouge::Formatters::HTMLLegacy
|
||
|
end
|
||
|
rescue NameError
|
||
|
# Fallback to Rouge 1.x
|
||
|
::Rouge::Formatters::HTML
|
||
|
end
|
||
|
end
|
||
|
end
|