@ -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