Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Python flexible slugify function

NotificationsYou must be signed in to change notification settings

voronind/awesome-slugify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://travis-ci.org/dimka665/awesome-slugify.svg?branch=master

Python flexible slugify function

Install

pip install awesome-slugify

Usage

fromslugifyimportslugifyslugify('Any text')# 'Any-text'

Custom slugify

fromslugifyimportslugify,Slugify,UniqueSlugifyslugify('Any text',to_lower=True)# 'any-text'custom_slugify=Slugify(to_lower=True)custom_slugify('Any text')# 'any-text'custom_slugify.separator='_'custom_slugify('Any text')# 'any_text'custom_slugify=UniqueSlugify()custom_slugify('Any text')# 'any-text'custom_slugify('Any text')# 'any-text-1'

slugify function optional args

to_lower# if True convert text to lowercasemax_length# output string max lengthseparator# separator stringcapitalize# if True upper first letter

Slugify class args

pretranslate=None# function or dict for replace before translationtranslate=unidecode.unidecode# function for slugifying or Nonesafe_chars=''# additional safe charsstop_words= ()# remove these words from slugto_lower=False# default to_lower valuemax_length=None# default max_length valueseparator='-'# default separator valuecapitalize=False# default capitalize value

UniqueSlugify class args

# all Slugify class args +uids= []# initial unique ids

Predefined slugify functions

Some slugify functions is predefined this way:

fromslugifyimportSlugify,CYRILLIC,GERMAN,GREEKslugify=Slugify()slugify_unicode=Slugify(translate=None)slugify_url=Slugify()slugify_url.to_lower=Trueslugify_url.stop_words= ('a','an','the')slugify_url.max_length=200slugify_filename=Slugify()slugify_filename.separator='_'slugify_filename.safe_chars='-.'slugify_filename.max_length=255slugify_ru=Slugify(pretranslate=CYRILLIC)slugify_de=Slugify(pretranslate=GERMAN)slugify_el=Slugify(pretranslate=GREEK)

Examples

fromslugifyimportSlugify,UniqueSlugify,slugify,slugify_unicodefromslugifyimportslugify_url,slugify_filenamefromslugifyimportslugify_ru,slugify_deslugify('one kožušček')# one-kozuscekslugify('one two three',separator='.')# one.two.threeslugify('one two three four',max_length=12)# one-two-four   (12 chars)slugify('one TWO',to_lower=True)# one-twoslugify('one TWO',capitalize=True)# One-TWOslugify_filename(u'Дrаft №2.txt')# Draft_2.txtslugify_url(u'Дrаft №2.txt')# draft-2-txtmy_slugify=Slugify()my_slugify.separator='.'my_slugify.pretranslate= {'я':'i','♥':'love'}my_slugify('Я ♥ борщ')# I.love.borshch  (custom translate)slugify('Я ♥ борщ')# Ia-borshch  (standard translation)slugify_ru('Я ♥ борщ')# Ya-borsch   (alternative russian translation)slugify_unicode('Я ♥ борщ')# Я-борщ      (sanitize only)slugify_de('ÜBER Über slugify')# UEBER-Ueber-slugifyslugify_unique=UniqueSlugify(separator='_')slugify_unique('one TWO')# One_TWOslugify_unique('one TWO')# One_TWO_1slugify_unique=UniqueSlugify(uids=['cellar-door'])slugify_unique('cellar door')# cellar-door-1

Custom Unique Slugify Checker

fromslugifyimportUniqueSlugifydefmy_unique_check(text,uids):iftextinuids:returnFalsereturnnotSomeDBClass.objects.filter(slug_field=text).exists()custom_slugify_unique=UniqueSlugify(unique_check=my_unique_check)# Checks the database for a matching documentcustom_slugify_unique('te occidere possunt')

Running UnitTests

$ virtualenv venv$ venv/bin/pip install -r requirements.txt$ venv/bin/nosetests slugify

[8]ページ先頭

©2009-2025 Movatter.jp