mirror of
https://github.com/WatchOutNewsAgency/wona.github.com.git
synced 2026-01-01 01:16:26 +00:00
Moved plugins to root directory. I'm ditching the idea of shipping plugins with themes until it's more obviously necessary. This way it's easier to merge and update plugins.
This commit is contained in:
75
plugins/custom_filters.rb
Normal file
75
plugins/custom_filters.rb
Normal file
@ -0,0 +1,75 @@
|
||||
#custom filters for Octopress
|
||||
|
||||
module OctopressFilters
|
||||
# Used on the blog index to split posts on the <!--more--> marker
|
||||
def exerpt(input)
|
||||
if input.index(/<!--\s*more\s*-->/i)
|
||||
input.split(/<!--\s*more\s*-->/i)[0]
|
||||
else
|
||||
input
|
||||
end
|
||||
end
|
||||
|
||||
# Summary is used on the Archive pages to return the first block of content from a post.
|
||||
def summary(input)
|
||||
if input.index(/\n\n/)
|
||||
input.split(/\n\n/)[0]
|
||||
else
|
||||
input
|
||||
end
|
||||
end
|
||||
|
||||
# Replaces relative urls with full urls
|
||||
def full_urls(input, url='')
|
||||
input.gsub /(\s+(href|src)\s*=\s*["|']{1})(\/[^\"'>]+)/ do
|
||||
$1+url+$3
|
||||
end
|
||||
end
|
||||
|
||||
# Returns a url without the http:// for use in as a search modifier eg. 'search terms site:website.com'
|
||||
def search_url(input)
|
||||
input.gsub /(https?:\/\/)(\S+)/ do
|
||||
$2
|
||||
end
|
||||
end
|
||||
|
||||
# replaces primes with smartquotes using RubyPants
|
||||
def smart_quotes(input)
|
||||
require 'rubypants'
|
||||
RubyPants.new(input).to_html
|
||||
end
|
||||
|
||||
# Returns a title cased string based on John Gruber's title case http://daringfireball.net/2008/08/title_case_update
|
||||
def titlecase(input)
|
||||
input.titlecase
|
||||
end
|
||||
|
||||
# Returns a datetime if the input is a string
|
||||
def datetime(date)
|
||||
if date.class == String
|
||||
date = Time.parse(date)
|
||||
end
|
||||
date
|
||||
end
|
||||
|
||||
# Returns an ordidinal date eg July 22 2007 -> July 22nd 2007
|
||||
def ordinalize(date)
|
||||
date = datetime(date)
|
||||
"#{date.strftime('%b')} #{ordinal(date.strftime('%e').to_i)}, #{date.strftime('%Y')}"
|
||||
end
|
||||
|
||||
# Returns an ordinal number. 13 -> 13th, 21 -> 21st etc.
|
||||
def ordinal(number)
|
||||
if (11..13).include?(number.to_i % 100)
|
||||
"#{number}<span>th</span>"
|
||||
else
|
||||
case number.to_i % 10
|
||||
when 1; "#{number}<span>st</span>"
|
||||
when 2; "#{number}<span>nd</span>"
|
||||
when 3; "#{number}<span>rd</span>"
|
||||
else "#{number}<span>th</span>"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Liquid::Template.register_filter OctopressFilters
|
||||
Reference in New Issue
Block a user