class Kramdown::Parser::Html
Used for parsing a HTML document.
def parse(source)
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