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