summaryrefslogtreecommitdiff
path: root/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb
diff options
context:
space:
mode:
authorBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
committerBenjamin Sanders <ben@Benjamins-MacBook-Pro.local>2025-10-11 10:34:24 -0400
commit5571dc766e2143e39762ff0b47c41d1c2e154f4c (patch)
treef4f124d314a7e76c04484515aa0fd1f2e271a601 /vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb
parent359f3309c97fc894b63e0a295c76ab298504d635 (diff)
Vendor bundled gems for deployment
Diffstat (limited to 'vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb')
-rw-r--r--vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb68
1 files changed, 68 insertions, 0 deletions
diff --git a/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb b/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb
new file mode 100644
index 0000000..0055a14
--- /dev/null
+++ b/vendor/bundle/ruby/3.4.0/gems/kramdown-2.5.1/lib/kramdown/converter.rb
@@ -0,0 +1,68 @@
+# -*- coding: utf-8; frozen_string_literal: true -*-
+#
+#--
+# Copyright (C) 2009-2019 Thomas Leitner <t_leitner@gmx.at>
+#
+# This file is part of kramdown which is licensed under the MIT.
+#++
+#
+
+require 'kramdown/utils'
+
+module Kramdown
+
+ # This module contains all available converters, i.e. classes that take a root Element and convert
+ # it to a specific output format. The result is normally a string. For example, the
+ # Converter::Html module converts an element tree into valid HTML.
+ #
+ # Converters use the Base class for common functionality (like applying a template to the output)
+ # \- see its API documentation for how to create a custom converter class.
+ module Converter
+
+ autoload :Base, 'kramdown/converter/base'
+ autoload :Html, 'kramdown/converter/html'
+ autoload :Latex, 'kramdown/converter/latex'
+ autoload :Kramdown, 'kramdown/converter/kramdown'
+ autoload :Toc, 'kramdown/converter/toc'
+ autoload :RemoveHtmlTags, 'kramdown/converter/remove_html_tags'
+ autoload :HashAST, 'kramdown/converter/hash_ast'
+ autoload :HashAst, 'kramdown/converter/hash_ast'
+ autoload :Man, 'kramdown/converter/man'
+
+ extend ::Kramdown::Utils::Configurable
+
+ configurable(:syntax_highlighter)
+
+ ['Minted', "Rouge"].each do |klass_name|
+ kn_down = klass_name.downcase.intern
+ add_syntax_highlighter(kn_down) do |converter, text, lang, type, opts|
+ require "kramdown/converter/syntax_highlighter/#{kn_down}"
+ klass = ::Kramdown::Utils.deep_const_get("::Kramdown::Converter::SyntaxHighlighter::#{klass_name}")
+ if !klass.const_defined?(:AVAILABLE) || klass::AVAILABLE
+ add_syntax_highlighter(kn_down, klass)
+ else
+ add_syntax_highlighter(kn_down) { nil }
+ end
+ syntax_highlighter(kn_down).call(converter, text, lang, type, opts)
+ end
+ end
+
+ configurable(:math_engine)
+
+ ["Mathjax"].each do |klass_name|
+ kn_down = klass_name.downcase.intern
+ add_math_engine(kn_down) do |converter, el, opts|
+ require "kramdown/converter/math_engine/#{kn_down}"
+ klass = ::Kramdown::Utils.deep_const_get("::Kramdown::Converter::MathEngine::#{klass_name}")
+ if !klass.const_defined?(:AVAILABLE) || klass::AVAILABLE
+ add_math_engine(kn_down, klass)
+ else
+ add_math_engine(kn_down) { nil }
+ end
+ math_engine(kn_down).call(converter, el, opts)
+ end
+ end
+
+ end
+
+end