devdocs/lib/docs/core/parser.rb
2014-12-28 13:27:04 -05:00

26 lines
470 B
Ruby

module Docs
class Parser
def initialize(content)
@content = content
end
def html
@html ||= document? ? parse_as_document : parse_as_fragment
end
private
def document?
@content =~ /\A\s*<!doctype/i
end
def parse_as_document
document = Nokogiri::HTML.parse @content, nil, 'UTF-8'
document.at_css 'body'
end
def parse_as_fragment
Nokogiri::HTML.fragment @content, 'UTF-8'
end
end
end