class Kramdown::Parser::Html
Used for parsing a 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 570 def parse 571 @stack, @tree = [], @root 572 @src = Kramdown::Utils::StringScanner.new(adapt_source(source)) 573 574 while true 575 if result = @src.scan(/\s*#{HTML_INSTRUCTION_RE}/) 576 @tree.children << Element.new(:xml_pi, result.strip, nil, :category => :block) 577 elsif result = @src.scan(/\s*#{HTML_DOCTYPE_RE}/) 578 # ignore the doctype 579 elsif result = @src.scan(/\s*#{HTML_COMMENT_RE}/) 580 @tree.children << Element.new(:xml_comment, result.strip, nil, :category => :block) 581 else 582 break 583 end 584 end 585 586 tag_handler = lambda do |c, closed, handle_body| 587 parse_raw_html(c, &tag_handler) if !closed && handle_body 588 end 589 parse_raw_html(@tree, &tag_handler) 590 591 ElementConverter.convert(@tree) 592 end