class Kramdown::Parser::Kramdown

def parse_block_html

Parse the HTML at the current position as block level HTML.
def parse_block_html
  if result = @src.scan(HTML_COMMENT_RE)
    @tree.children << Element.new(:xml_comment, result, :type => :block)
    @src.scan(/[ \t]*\n/)
    true
  elsif result = @src.scan(HTML_INSTRUCTION_RE)
    @tree.children << Element.new(:xml_pi, result, :type => :block)
    @src.scan(/[ \t]*\n/)
    true
  else
    if result = @src.check(/^#{OPT_SPACE}#{HTML_TAG_RE}/) && !HTML_SPAN_ELEMENTS.include?(@src[1])
      @src.pos += @src.matched_size
      handle_html_start_tag
      true
    elsif result = @src.check(/^#{OPT_SPACE}#{HTML_TAG_CLOSE_RE}/) && !HTML_SPAN_ELEMENTS.include?(@src[1])
      @src.pos += @src.matched_size
      name = @src[1]
      if @tree.type ==:html_element && @tree.value == name
        throw :stop_block_parsing, :found
      else
        warning("Found invalidly used HTML closing tag for '#{name}' - ignoring it")
        true
      end
    else
      false
    end
  end
end