From a81ef5e28bc2abb846a2a3da04dd43aa7ca547a1 Mon Sep 17 00:00:00 2001
From: Frederic Hemberger <mail@frederic-hemberger.de>
Date: Fri, 21 Oct 2011 15:00:32 +0200
Subject: Improve handling of meta description

---
 plugins/octopress_filters.rb | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

(limited to 'plugins')

diff --git a/plugins/octopress_filters.rb b/plugins/octopress_filters.rb
index 997a740a..a5bb235c 100644
--- a/plugins/octopress_filters.rb
+++ b/plugins/octopress_filters.rb
@@ -79,6 +79,33 @@ module OctopressLiquidFilters
     end
   end
 
+  # Improved version of Liquid's truncate:
+  # - Doesn't cut in the middle of a word.
+  # - Uses typographically correct ellipsis (…) insted of '...'
+  def truncate(input, length)
+    if input.length > length && input[0..(length-1)] =~ /(.+)\b.+$/im
+      $1.strip + ' &hellip;'
+    else
+      input
+    end
+  end
+
+  # Improved version of Liquid's truncatewords:
+  # - Uses typographically correct ellipsis (…) insted of '...'
+  def truncatewords(input, length)
+    truncate = input.split(' ')
+    if truncate.length > length
+      truncate[0..length-1].join(' ').strip + ' &hellip;'
+    else
+      input
+    end
+  end
+
+  # Condenses multiple spaces and tabs into a single space
+  def condense_spaces(input)
+    input.gsub(/\s{2,}/, ' ')
+  end
+
   # Removes trailing forward slash from a string for easily appending url segments
   def strip_slash(input)
     if input =~ /(.+)\/$|^\/$/
-- 
cgit v1.2.1