13 Ağustos 2007 Pazartesi

Nice post slug

#author: sligowaths http://www.bigbold.com/snippets/user/sligowaths/2
#-------------------------------------------------------------------------
#This code replaces accents to normal chars(e.g "á" => "a"), everything that isn´t in "a-zA-Z0-9" to "", multiples spaces to one space, and one space to "-".
#This is useful to make URLs from titles, like Netscape.com does...
#"A new report recommends only work 4 -6 hrs a day" => #"A-new-report-recommends-only-work-4-6-hrs-a-day"
#"Video: \"Popular Mechanics\" editor debunks 9/11 myths" => "Video-Popular-Mechanics-editor-debunks-911-myths"
# etc..
# The code is 95% based on http://textsnippets.com/posts/show/451
def self.nice_slug(str)
accents = {
['á','à','â','ä','ã'] => 'a',
['Ã','Ä','Â','À','Á'] => 'A',
['é','è','ê','ë'] => 'e',
['Ë','É','È','Ê'] => 'E',
['í','ì','î','ï'] => 'i',
['Í','Î','Ì','Ï'] => 'I',
['ó','ò','ô','ö','õ'] => 'o',
['Õ','Ö','Ô','Ò','Ó'] => 'O',
['ú','ù','û','ü'] => 'u',
['Ú','Û','Ù','Ü'] => 'U',
['ç'] => 'c', ['Ç'] => 'C',
['ñ'] => 'n', ['Ñ'] => 'N'
}
accents.each do ac,rep
ac.each do s
str = str.gsub(s, rep)
end
end
str = str.gsub(/[^a-zA-Z0-9 ]/,"")
str = str.gsub(/[ ]+/," ")
str = str.gsub(/ /,"-")
#str = str.downcase
end


0 Comments: