Skip to content

Instantly share code, notes, and snippets.

View heysamtexas's full-sized avatar

Sam Texas heysamtexas

View GitHub Profile
@chanmix51
chanmix51 / slugify.sql
Last active September 4, 2015 13:45
slugification in plpgsql
CREATE OR REPLACE FUNCTION slugify(title VARCHAR) RETURNS varchar AS $$
SELECT trim(both '-' from regexp_replace(lower(transliterate(title)), '[^a-z0-9]+', '-', 'g'));
$$ LANGUAGE sql IMMUTABLE;
@chanmix51
chanmix51 / transliterate.sql
Last active September 4, 2015 13:45
transliteration in plpgsql
CREATE OR REPLACE FUNCTION transliterate(my_text VARCHAR) RETURNS varchar AS $$
DECLARE
text_out VARCHAR DEFAULT '';
BEGIN
text_out := my_text;
text_out := translate(text_out, 'áàâäåáăąãāçċćčĉéèėëêēĕîïìíīñôöøõōùúüûūýÿỳ', 'aaaaaaaaaaccccceeeeeeeiiiiinooooouuuuuyyy');
text_out := translate(text_out, 'ÁÀÂÄÅÁĂĄÃĀÇĊĆČĈÉÈĖËÊĒĔÎÏÌÍĪÑÔÖØÕŌÙÚÜÛŪÝŸỲ', 'AAAAAAAAAACCCCCEEEEEEEIIIIINOOOOOUUUUUYYY');
text_out := replace(text_out, 'æ', 'ae');
text_out := replace(text_out, 'Œ', 'OE');
text_out := replace(text_out, 'Æ', 'AE');