Added a convenience class for parsing HTML.
This removes the need for users having to set the `:html` option themselves.
This commit is contained in:
parent
58009614f6
commit
79818eb349
|
@ -1,5 +1,8 @@
|
||||||
require 'ast'
|
require 'ast'
|
||||||
|
|
||||||
require_relative 'oga/ast/node'
|
require_relative 'oga/ast/node'
|
||||||
|
|
||||||
require_relative 'oga/xml/lexer'
|
require_relative 'oga/xml/lexer'
|
||||||
require_relative 'oga/xml/parser'
|
require_relative 'oga/xml/parser'
|
||||||
|
|
||||||
|
require_relative 'oga/html/parser'
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
module Oga
|
||||||
|
module HTML
|
||||||
|
##
|
||||||
|
# Low level AST parser for parsing HTML documents. See {Oga::XML::Parser}
|
||||||
|
# for more information.
|
||||||
|
#
|
||||||
|
class Parser < XML::Parser
|
||||||
|
##
|
||||||
|
# @param [Hash] options
|
||||||
|
# @see Oga::XML::Parser#initialize
|
||||||
|
#
|
||||||
|
def initialize(options = {})
|
||||||
|
options = options.merge(:html => true)
|
||||||
|
|
||||||
|
super(options)
|
||||||
|
end
|
||||||
|
end # Parser
|
||||||
|
end # HTML
|
||||||
|
end # Oga
|
|
@ -0,0 +1,10 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe Oga::HTML::Parser do
|
||||||
|
example 'parse an HTML void element' do
|
||||||
|
parse_html('<meta>').should == s(
|
||||||
|
:document,
|
||||||
|
s(:element, nil, 'meta', nil, nil)
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
|
@ -23,7 +23,7 @@ module Oga
|
||||||
end
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Parses the given HTML and returns an AST.
|
# Parses the given XML and returns an AST.
|
||||||
#
|
#
|
||||||
# @param [String] input
|
# @param [String] input
|
||||||
# @param [Hash] options
|
# @param [Hash] options
|
||||||
|
@ -32,5 +32,14 @@ module Oga
|
||||||
def parse(input, options = {})
|
def parse(input, options = {})
|
||||||
return Oga::XML::Parser.new(options).parse(input)
|
return Oga::XML::Parser.new(options).parse(input)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
##
|
||||||
|
# Parses the given HTML and returns an AST.
|
||||||
|
#
|
||||||
|
# @see #parse
|
||||||
|
#
|
||||||
|
def parse_html(input, options = {})
|
||||||
|
return Oga::HTML::Parser.new(options).parse(input)
|
||||||
|
end
|
||||||
end # ParsingHelpers
|
end # ParsingHelpers
|
||||||
end # Oga
|
end # Oga
|
||||||
|
|
Loading…
Reference in New Issue