Istnieje pakiet o nazwie Python python-slugify
, który całkiem nieźle radzi sobie ze slugowaniem:
pip install python-slugify
Działa tak:
from slugify import slugify
txt = "This is a test ---"
r = slugify(txt)
self.assertEquals(r, "this-is-a-test")
txt = "This -- is a ## test ---"
r = slugify(txt)
self.assertEquals(r, "this-is-a-test")
txt = 'C\'est déjà l\'été.'
r = slugify(txt)
self.assertEquals(r, "cest-deja-lete")
txt = 'Nín hǎo. Wǒ shì zhōng guó rén'
r = slugify(txt)
self.assertEquals(r, "nin-hao-wo-shi-zhong-guo-ren")
txt = 'Компьютер'
r = slugify(txt)
self.assertEquals(r, "kompiuter")
txt = 'jaja---lol-méméméoo--a'
r = slugify(txt)
self.assertEquals(r, "jaja-lol-mememeoo-a")
Zobacz więcej przykładów
Ten pakiet robi trochę więcej niż to, co opublikowałeś (spójrz na źródło, to tylko jeden plik). Projekt jest nadal aktywny (został zaktualizowany 2 dni przed pierwszą odpowiedzią, ponad siedem lat później (ostatnio sprawdzany 2020-06-30), nadal jest aktualizowany).
uwaga : w pobliżu jest drugi pakiet o nazwie slugify
. Jeśli masz oba, możesz mieć problem, ponieważ mają tę samą nazwę do importu. Ten, który właśnie wymieniono, slugify
nie zrobił wszystkiego, co szybko sprawdziłem: "Ich heiße"
stał się "ich-heie"
(powinien być "ich-heisse"
), więc pamiętaj, aby wybrać właściwy, używając pip
lub easy_install
.