# class Kramdown::Parser::Html

Used for parsing an HTML document.

The parsing code is in the `Parser` module that can also be used by other parsers.

### Public Instance Methods

parse() click to toggle source

Parse the source string provided on initialization as HTML document.

        # File lib/kramdown/parser/html.rb
    578 def parse
    579   @stack, @tree = [], @root
    580   @src = Kramdown::Utils::StringScanner.new(adapt_source(source))
    581
    582   while true
    583     if (result = @src.scan(/\s*#{HTML_INSTRUCTION_RE}/o))
    584       @tree.children << Element.new(:xml_pi, result.strip, nil, category: :block)
    585     elsif (result = @src.scan(/\s*#{HTML_DOCTYPE_RE}/o))
    586       # ignore the doctype
    587     elsif (result = @src.scan(/\s*#{HTML_COMMENT_RE}/o))
    588       @tree.children << Element.new(:xml_comment, result.strip, nil, category: :block)
    589     else
    590       break
    591     end
    592   end
    593
    594   tag_handler = lambda do |c, closed, handle_body|
    595     parse_raw_html(c, &tag_handler) if !closed && handle_body
    596   end
    597   parse_raw_html(@tree, &tag_handler)
    598
    599   ElementConverter.convert(@tree)
    600 end