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