Sha256: 0a4d0607e2432fe9b45a2c492b44a981506068643c355be674067c56807bd7b7
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 KB
Contents
# frozen_string_literal: true # KaTeX support for Kramdown < v1.17.0 (newer versions have built-in support). module Thredded module MarkdownKatex module Kramdown # The KaTeX converter engine for Kramdown. module KatexConverter # rubocop:disable Metrics/MethodLength, Naming/MethodParameterName def self.call(converter, el, opts) display_mode = el.options[:category] == :block result = ::Katex.render( el.value, display_mode: display_mode, throw_on_error: false, **converter.options[:math_engine_opts] ) attr = el.attr.dup attr.delete('xmlns') attr.delete('display') result .insert(result =~ /[[:space:]>]/, converter.html_attributes(attr)) result = "#{' ' * opts[:indent]}#{result}\n" if display_mode result end # rubocop:enable Metrics/MethodLength, Naming/MethodParameterName end end end end require 'kramdown/converter' Kramdown::Converter .add_math_engine(:katex, ::Thredded::MarkdownKatex::Kramdown::KatexConverter)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
thredded-markdown_katex-1.0.0 | lib/thredded/markdown_katex/kramdown/katex_converter.rb |