class Kramdown::Parser::Kramdown
def handle_extension(name, opts, body, type, line_no = nil)
def handle_extension(name, opts, body, type, line_no = nil) case name when 'comment' if body.kind_of?(String) @tree.children << Element.new(:comment, body, nil, category: type, location: line_no) end true when 'nomarkdown' if body.kind_of?(String) @tree.children << Element.new(:raw, body, nil, category: type, location: line_no, type: opts['type'].to_s.split(/\s+/)) end true when 'options' opts.select do |k, v| k = k.to_sym if Kramdown::Options.defined?(k) if @options[:forbidden_inline_options].include?(k) || k == :forbidden_inline_options warning("Option #{k} may not be set inline") next false end begin val = Kramdown::Options.parse(k, v) @options[k] = val (@root.options[:options] ||= {})[k] = val rescue StandardError end false else true end end.each do |k, _v| warning("Unknown kramdown option '#{k}'") end @tree.children << new_block_el(:eob, :extension) if type == :block true else false end end