aboutsummaryrefslogtreecommitdiff
path: root/_plugins/filters.rb
diff options
context:
space:
mode:
Diffstat (limited to '_plugins/filters.rb')
-rw-r--r--_plugins/filters.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/_plugins/filters.rb b/_plugins/filters.rb
new file mode 100644
index 0000000..78eb04f
--- /dev/null
+++ b/_plugins/filters.rb
@@ -0,0 +1,25 @@
+module Filters
+ def datefmt(input)
+ return input.strftime("%F")
+ end
+
+ def sentence_join(items, fallback = "")
+ return fallback if items == nil or items.length == 0
+ return "#{items[0]}" if items.length == 1
+ return "#{items[0..-2].join(", ")} and #{items[-1]}"
+ end
+
+ def plural(num, counter)
+ return "#{num} #{counter}#{num == 1 ? '' : 's'}"
+ end
+
+ def post_sort(posts, sort_by)
+ # date (reverse chronological)
+ return posts.sort_by{ |post| -post.data['date'].to_i } if sort_by == "date"
+ # title (case insensitive)
+ return posts.sort_by{ |post| post.data['title'].downcase } if sort_by == "title"
+ end
+end
+
+Liquid::Template.register_filter(Filters)
+