diff options
-rw-r--r-- | .themes/classic/source/_includes/post/date.html | 10 | ||||
-rw-r--r-- | .themes/classic/source/_layouts/page.html | 2 | ||||
-rw-r--r-- | .themes/classic/source/_layouts/post.html | 2 | ||||
-rw-r--r-- | plugins/date.rb | 64 |
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 |