diff options
author | Frederic Hemberger <mail@frederic-hemberger.de> | 2011-11-03 20:32:38 +0100 |
---|---|---|
committer | Frederic Hemberger <mail@frederic-hemberger.de> | 2011-11-03 20:32:38 +0100 |
commit | 987dccee7655a410a2fb1e0f41c35b282b17cbe9 (patch) | |
tree | f4924e26e9662a72d7f8e3c16245081cbf727432 /plugins/date.rb | |
parent | 262eb52bc58df8459ecf87d81627162bd7c3bc65 (diff) | |
download | my_new_personal_website-987dccee7655a410a2fb1e0f41c35b282b17cbe9.tar.xz my_new_personal_website-987dccee7655a410a2fb1e0f41c35b282b17cbe9.zip |
Add custom date format to pages, add 'updated' field again
Reverts changes of c2a68cc where I accidentally removed support for 'updated' field, see comments of issue #164 for details.
Diffstat (limited to 'plugins/date.rb')
-rw-r--r-- | plugins/date.rb | 64 |
1 files changed, 45 insertions, 19 deletions
diff --git a/plugins/date.rb b/plugins/date.rb index b3e9e35e..c1c69551 100644 --- a/plugins/date.rb +++ b/plugins/date.rb @@ -29,6 +29,16 @@ module Octopress end end + def format_date(date, format) + date = datetime(date) + if format.nil? || format.empty? || format == "ordinal" + date_formatted = ordinalize(date) + else + date_formatted = date.strftime(format) + end + date_formatted + end + end end @@ -38,32 +48,48 @@ module Jekyll class Post include Octopress::Date - attr_accessor :date_formatted - # Convert this post into a Hash for use in Liquid templates. # # Returns <Hash> def to_liquid - format = self.site.config['date_format'] - if format.nil? || format.empty? || format == "ordinal" - date_formatted = ordinalize(self.date) - else - date_formatted = self.date.strftime(format) - end - + 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, + "title" => self.data['title'] || self.slug.split('-').select {|w| w.capitalize! || w }.join(' '), + "url" => self.url, + "date" => self.date, # Monkey patch - "date_formatted" => date_formatted, - "id" => self.id, - "categories" => self.categories, - "next" => self.next, - "previous" => self.previous, - "tags" => self.tags, - "content" => self.content }) + "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 }) 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') + end end end
\ No newline at end of file |