lib/jekyll/page.rb in jekyll-2.0.0.alpha.1 vs lib/jekyll/page.rb in jekyll-2.0.0.alpha.2

- old
+ new

@@ -26,12 +26,12 @@ @site = site @base = base @dir = dir @name = name - self.process(name) - self.read_yaml(File.join(base, dir), name) + process(name) + read_yaml(File.join(base, dir), name) end # The generated directory into which the page will be placed # upon generation. This is derived from the permalink or, if # permalink is absent, we be '/' @@ -44,23 +44,23 @@ # The full path and filename of the post. Defined in the YAML of the post # body. # # Returns the String permalink or nil if none has been set. def permalink - return nil if self.data.nil? || self.data['permalink'].nil? + return nil if data.nil? || data['permalink'].nil? if site.config['relative_permalinks'] - File.join(@dir, self.data['permalink']) + File.join(@dir, data['permalink']) else - self.data['permalink'] + data['permalink'] end end # The template of the permalink. # # Returns the template String. def template - if self.site.permalink_style == :pretty + if site.permalink_style == :pretty if index? && html? "/:path/" elsif html? "/:path/:basename/" else @@ -85,45 +85,45 @@ # Returns a hash of URL placeholder names (as symbols) mapping to the # desired placeholder replacements. For details see "url.rb" def url_placeholders { :path => @dir, - :basename => self.basename, - :output_ext => self.output_ext + :basename => basename, + :output_ext => output_ext } end # Extract information from the page filename. # # name - The String filename of the page file. # # Returns nothing. def process(name) self.ext = File.extname(name) - self.basename = name[0 .. -self.ext.length-1] + self.basename = name[0 .. -ext.length - 1] end # Add any necessary layouts to this post # # layouts - The Hash of {"name" => "layout"}. # site_payload - The site payload Hash. # # Returns nothing. def render(layouts, site_payload) - payload = { - "page" => self.to_liquid, + payload = Utils.deep_merge_hashes({ + "page" => to_liquid, 'paginator' => pager.to_liquid - }.deep_merge(site_payload) + }, site_payload) do_layout(payload, layouts) end # The path to the source file # # Returns the path to the source file def path - self.data.fetch('path', self.relative_path.sub(/\A\//, '')) + data.fetch('path', relative_path.sub(/\A\//, '')) end # The path to the page source file, relative to the site source def relative_path File.join(*[@dir, @name].map(&:to_s).reject(&:empty?)) @@ -133,18 +133,18 @@ # # dest - The String path to the destination dir. # # Returns the destination file path String. def destination(dest) - path = File.join(dest, self.url) - path = File.join(path, "index.html") if self.url =~ /\/$/ + path = Jekyll.sanitized_path(dest, url) + path = File.join(path, "index.html") if url =~ /\/$/ path end # Returns the object as a debug String. def inspect - "#<Jekyll:Page @name=#{self.name.inspect}>" + "#<Jekyll:Page @name=#{name.inspect}>" end # Returns the Boolean of whether this Page is HTML or not. def html? output_ext == '.html' @@ -154,9 +154,9 @@ def index? basename == 'index' end def uses_relative_permalinks - permalink && @dir != "" && site.config['relative_permalinks'] + permalink && !@dir.empty? && site.config['relative_permalinks'] end end end