From 654d598fcf8492a4ed4a62cc4d9e77afe6e799d7 Mon Sep 17 00:00:00 2001 From: "maul.esel" Date: Thu, 11 Apr 2013 17:13:15 +0200 Subject: [PATCH] rework excerpt to be an accessor method Instead of setting self.excerpt, make it a method that returns either the custom excerpt or the pre- viously extracted excerpt. --- lib/jekyll/post.rb | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/jekyll/post.rb b/lib/jekyll/post.rb index 2def58ed..99968152 100644 --- a/lib/jekyll/post.rb +++ b/lib/jekyll/post.rb @@ -19,10 +19,10 @@ module Jekyll end attr_accessor :site - attr_accessor :data, :excerpt, :content, :output, :ext + attr_accessor :data, :extracted_excerpt, :content, :output, :ext attr_accessor :date, :slug, :published, :tags, :categories - attr_reader :name + attr_reader :name, :excerpt # Initialize this Post instance. # @@ -80,10 +80,18 @@ module Jekyll # Returns nothing. def read_yaml(base, name) super(base, name) - self.excerpt = self.data["excerpt"] || self.extract_excerpt + self.extracted_excerpt = self.extract_excerpt self.data['layout'] = 'post' unless self.data.has_key?('layout') end + # The post excerpt. This is either a custom excerpt + # set in YAML front matter or the result of extract_excerpt. + # + # Returns excerpt string. + def excerpt + self.data['excerpt'] ? converter.convert(self.data['excerpt']) : self.extracted_excerpt + end + # Compares Post objects. First compares the Post date. If the dates are # equal, it compares the Post slugs. # @@ -117,7 +125,7 @@ module Jekyll # Returns nothing. def transform super - self.excerpt = converter.convert(self.excerpt) + self.extracted_excerpt = converter.convert(self.extracted_excerpt) end # The generated directory into which the post will be placed