aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorFrederic Hemberger <mail@frederic-hemberger.de>2011-11-03 20:32:38 +0100
committerFrederic Hemberger <mail@frederic-hemberger.de>2011-11-03 20:32:38 +0100
commit987dccee7655a410a2fb1e0f41c35b282b17cbe9 (patch)
treef4924e26e9662a72d7f8e3c16245081cbf727432 /plugins
parent262eb52bc58df8459ecf87d81627162bd7c3bc65 (diff)
downloadmy_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')
-rw-r--r--plugins/date.rb64
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