class Kramdown::Parser::Html

Used for parsing a HTML document.

def parse(source)

Parse +source+ as HTML document and return the created +tree+.
def parse(source)
  @stack = []
  @tree = Element.new(:root)
  @src = StringScanner.new(adapt_source(source))
  while true
    if result = @src.scan(/\s*#{HTML_INSTRUCTION_RE}/)
      @tree.children << Element.new(:xml_pi, result.strip, :category => :block)
    elsif result = @src.scan(/\s*#{HTML_DOCTYPE_RE}/)
      @tree.children << Element.new(:html_doctype, result.strip, :category => :block)
    elsif result = @src.scan(/\s*#{HTML_COMMENT_RE}/)
      @tree.children << Element.new(:xml_comment, result.strip, :category => :block)
    else
      break
    end
  end
  tag_handler = lambda do |c, closed|
    parse_raw_html(c, &tag_handler) if !closed
  end
  parse_raw_html(@tree, &tag_handler)
  ec = ElementConverter.new(@doc)
  @tree.children.each {|c| ec.process(c)}
  ec.remove_whitespace_children(@tree)
  @tree
end