def handle_kramdown_html_tag(el, closed)
el.options[:ial] = @block_ial if @block_ial
content_model = if @tree.type != :html_element || @tree.options[:content_model] != :raw
(@options[:parse_block_html] ? HTML_CONTENT_MODEL[el.value] : :raw)
else
:raw
end
if val = HTML_MARKDOWN_ATTR_MAP[el.attr.delete('markdown')]
content_model = (val == :default ? HTML_CONTENT_MODEL[el.value] : val)
end
@src.scan(TRAILING_WHITESPACE) if content_model == :block
el.options[:content_model] = content_model
if !closed
if content_model == :block
if !parse_blocks(el)
warning("Found no end tag for '#{el.value}' - auto-closing it")
end
elsif content_model == :span
curpos = @src.pos
if result = @src.scan_until(/(?=<\/#{el.value}\s*>)/m)
add_text(extract_string(curpos...@src.pos, @src), el)
@src.scan(HTML_TAG_CLOSE_RE)
else
add_text(@src.rest, el)
@src.terminate
warning("Found no end tag for '#{el.value}' - auto-closing it")
end
else
parse_raw_html(el, &method(:handle_kramdown_html_tag))
end
@src.scan(TRAILING_WHITESPACE) unless (@tree.type == :html_element && @tree.options[:content_model] == :raw)
end
end