aboutsummaryrefslogtreecommitdiff
path: root/plugins/date.rb
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/date.rb')
-rw-r--r--plugins/date.rb53
1 files changed, 18 insertions, 35 deletions
diff --git a/plugins/date.rb b/plugins/date.rb
index 49fb79a3..24607ef8 100644
--- a/plugins/date.rb
+++ b/plugins/date.rb
@@ -41,6 +41,15 @@ module Octopress
end
date_formatted
end
+
+ # Returns the date-specific liquid attributes
+ def liquid_date_attributes
+ date_format = self.site.config['date_format']
+ data = {}
+ data['date_formatted'] = format_date(self.data['date'], date_format) if self.data.has_key?('date')
+ data['updated_formatted'] = format_date(self.data['updated'], date_format) if self.data.has_key?('updated')
+ data
+ end
end
end
@@ -51,48 +60,22 @@ module Jekyll
class Post
include Octopress::Date
- # Convert this post into a Hash for use in Liquid templates.
- #
- # Returns <Hash>
+ # Convert this Convertible's data to a Hash suitable for use by Liquid.
+ # Overrides the default return data and adds any date-specific liquid attributes
+ alias :super_to_liquid :to_liquid
def to_liquid
- date_format = self.site.config['date_format']
- self.data.deep_merge({
- "title" => self.data['title'] || self.slug.split('-').select {|w| w.capitalize! || w }.join(' '),
- "url" => self.url,
- "date" => self.date,
- # Monkey patch
- "date_formatted" => format_date(self.date, date_format),
- "updated_formatted" => self.data.has_key?('updated') ? format_date(self.data['updated'], date_format) : nil,
- "id" => self.id,
- "categories" => self.categories,
- "next" => self.next,
- "previous" => self.previous,
- "tags" => self.tags,
- "content" => self.content })
+ super_to_liquid.deep_merge(liquid_date_attributes)
end
end
class Page
include Octopress::Date
- # Initialize a new Page.
- #
- # site - The Site object.
- # base - The String path to the source.
- # dir - The String path between the source and the file.
- # name - The String filename of the file.
- def initialize(site, base, dir, name)
- @site = site
- @base = base
- @dir = dir
- @name = name
-
- self.process(name)
- self.read_yaml(File.join(base, dir), name)
- # Monkey patch
- date_format = self.site.config['date_format']
- self.data['date_formatted'] = format_date(self.data['date'], date_format) if self.data.has_key?('date')
- self.data['updated_formatted'] = format_date(self.data['updated'], date_format) if self.data.has_key?('updated')
+ # Convert this Convertible's data to a Hash suitable for use by Liquid.
+ # Overrides the default return data and adds any date-specific liquid attributes
+ alias :super_to_liquid :to_liquid
+ def to_liquid
+ super_to_liquid.deep_merge(liquid_date_attributes)
end
end
end