aboutsummaryrefslogtreecommitdiff
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
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.
-rw-r--r--.themes/classic/source/_includes/post/date.html10
-rw-r--r--.themes/classic/source/_layouts/page.html2
-rw-r--r--.themes/classic/source/_layouts/post.html2
-rw-r--r--plugins/date.rb64
4 files changed, 56 insertions, 22 deletions
diff --git a/.themes/classic/source/_includes/post/date.html b/.themes/classic/source/_includes/post/date.html
index 4fb570d2..ecf1ad71 100644
--- a/.themes/classic/source/_includes/post/date.html
+++ b/.themes/classic/source/_includes/post/date.html
@@ -2,6 +2,14 @@
{% capture date_formatted %}{{ page.date_formatted }}{{ post.date_formatted }}{% endcapture %}
{% capture has_date %}{{ date | size }}{% endcapture %}
+{% capture updated %}{{ page.updated }}{{ post.updated }}{% endcapture %}
+{% capture updated_formatted %}{{ page.updated_formatted }}{{ post.updated_formatted }}{% endcapture %}
+{% capture was_updated %}{{ updated | size }}{% endcapture %}
+
{% if has_date != '0' %}
- {% capture time %}<time datetime="{{ date | datetime | date_to_xmlschema }}" pubdate>{{ date_formatted }}</time>{% endcapture %}
+ {% capture time %}<time datetime="{{ date | datetime | date_to_xmlschema }}" pubdate{% if updated %} data-updated="true"{% endif %}>{{ date_formatted }}</time>{% endcapture %}
{% endif %}
+
+{% if was_updated != '0' %}
+ {% capture updated %}<time datetime="{{ updated | datetime | date_to_xmlschema }}" class="updated">Updated {{ updated_formatted }}</time>{% endcapture %}
+{% else %}{% assign updated = false %}{% endif %} \ No newline at end of file
diff --git a/.themes/classic/source/_layouts/page.html b/.themes/classic/source/_layouts/page.html
index 7f3b7627..8ba6ec94 100644
--- a/.themes/classic/source/_layouts/page.html
+++ b/.themes/classic/source/_layouts/page.html
@@ -15,7 +15,7 @@ layout: default
<footer>
{% if page.date or page.author %}<p class="meta">
{% if page.author %}{% include post/author.html %}{% endif %}
- {% include post/date.html %}{{ time }}
+ {% include post/date.html %}{% if updated %}{{ updated }}{% else %}{{ time }}{% endif %}
{% if page.categories %}{% include post/categories.html %}{% endif %}
</p>{% endif %}
{% unless page.sharing == false %}
diff --git a/.themes/classic/source/_layouts/post.html b/.themes/classic/source/_layouts/post.html
index 251e831d..d3c42e37 100644
--- a/.themes/classic/source/_layouts/post.html
+++ b/.themes/classic/source/_layouts/post.html
@@ -9,7 +9,7 @@ single: true
<footer>
<p class="meta">
{% include post/author.html %}
- {% include post/date.html %}{{ time }}
+ {% include post/date.html %}{% if updated %}{{ updated }}{% else %}{{ time }}{% endif %}
{% include post/categories.html %}
</p>
{% unless page.sharing == false %}
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