# 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
    585 def parse
    586   @stack, @tree = [], @root
    587   @src = Kramdown::Utils::StringScanner.new(adapt_source(source))
    588
    589   while true
    590     if (result = @src.scan(/\s*#{HTML_INSTRUCTION_RE}/o))
    591       @tree.children << Element.new(:xml_pi, result.strip, nil, category: :block)
    592     elsif (result = @src.scan(/\s*#{HTML_DOCTYPE_RE}/o))
    593       # ignore the doctype
    594     elsif (result = @src.scan(/\s*#{HTML_COMMENT_RE}/o))
    595       @tree.children << Element.new(:xml_comment, result.strip, nil, category: :block)
    596     else
    597       break
    598     end
    599   end
    600
    601   tag_handler = lambda do |c, closed, handle_body|
    602     parse_raw_html(c, &tag_handler) if !closed && handle_body
    603   end
    604   parse_raw_html(@tree, &tag_handler)
    605
    606   ElementConverter.convert(@tree)
    607 end