Login

Slugify alternative

Author:
exogen
Posted:
April 10, 2007
Language:
Python
Version:
.96
Tags:
filter slugs slug slugify
Score:
2 (after 2 ratings)

I prefer to use this slugification function rather than the one included with Django. It uses underscores instead of dashes for spaces, and allows dashes and periods to occur normally in the string. I decided on this when considering reasonable slugified titles such as...

object-relational_mapper_2.5
ten_reasons_web-2.0_rocks
django-trunk_0.99_updated
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from django import template
import re

register = template.Library()

@register.filter
def slugify(string):
    string = re.sub('\s+', '_', string)
    string = re.sub('[^\w.-]', '', string)
    return string.strip('_.- ').lower()

More like this

  1. slugify js -> python by santuri 8 years, 2 months ago
  2. slug_and_slash_to_dash - modified slugify for urls by bradmontgomery 4 years, 8 months ago
  3. Using the built-in slugify filter outside a template by jcroft 8 years, 2 months ago
  4. Built-in Slugify with filtering. by jcrawford 6 years, 1 month ago
  5. jQuery slugify plugin by girasquid 6 years ago

Comments

ericmoritz (on July 3, 2008):

From what I hear dashes are supposed to be more search engine friendly. According the a Search Engine guy I know, the search engines equate a underscore to be an non-char. So school_closes_due_to_health_issues turns into schoolclosesduetohealthissues.

I take that stuff with a grain of salt though... I think the folks at Google are smart enough to realize folks use underscores as spaces in slugs.

Donno.

#

Please login first before commenting.