Call overridden version of to_liquid
and remove duplicate code
Make sure to call "overidden" method which keeps us nice and compatible so we don't need to keep up with whatever Jekyll usually does, and make sure to include it in our overriden method. I have had it with these monkey-patching methods in this Monday-to- Friday language! Add method `liquid_date_attributes`. Cleanup the Post and Page overrides to be more similar.
This commit is contained in:
parent
4fd754a762
commit
797aeb5074
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user