summaryrefslogtreecommitdiff
path: root/config/initializers/kramdown_patch.rb
diff options
context:
space:
mode:
Diffstat (limited to 'config/initializers/kramdown_patch.rb')
-rw-r--r--config/initializers/kramdown_patch.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/config/initializers/kramdown_patch.rb b/config/initializers/kramdown_patch.rb
new file mode 100644
index 00000000000..5cb769cec24
--- /dev/null
+++ b/config/initializers/kramdown_patch.rb
@@ -0,0 +1,25 @@
+# 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