lib/genit/html_document.rb in genit-0.2 vs lib/genit/html_document.rb in genit-0.3

- old
+ new

@@ -6,32 +6,62 @@ module Genit # Open an html file in various format. class HtmlDocument - # Public: Open a html document. + # Public: Open an entire html document. + # If the file does not contain a <bogy> tag, a doctype, etc, they will be + # automatically added. # # file - Full path String filename. # # Returns a Nokogiri::HTML document. def self.open file Nokogiri::HTML(File.open(file)) end - # Public: Open a html or markdown file as a string. + # Public: Open a fragment of html document. # + # file - Full path String filename. + # + # Returns a Nokogiri::HTML document. + def self.open_fragment file + string = IO.read file + Nokogiri::HTML.fragment string + end + + # Public: Open a file as a string. + # # file - Full path String name of a html or markdown file. # # Returns a String. def self.open_as_string file string = IO.read file - string = BlueCloth.new(string).to_html if file.end_with? '.markdown' - string + if file.markdown_ext? + BlueCloth.new(string).to_html + else + string + end end + # Public: Open a file as a string, taking care of fragment tags. + # All fragment tags are replaced by a new content. + # + # file - Full path String name of a html or markdown file. + # + # Returns a String. + def self.build_page_content(file, working_dir) + # TODO éviter le working_dir + if file.markdown_ext? + BlueCloth.new(IO.read(file)).to_html + else + Fragment.new(file, working_dir).to_html + end + end + # Public: Get the list of <genit> tag in a document. # - # file - Nokogiri::HTML document. + # file - Nokogiri::HTML or Nokogiri::XML document. # # Returns a list of Nokogiri::XML::NodeSet. def self.genit_tags_from file file.css "genit" end