Il existe un package python nommé python-slugify
, qui fait un très bon travail de slugification:
pip install python-slugify
Fonctionne comme ceci:
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")
Voir plus d'exemples
Ce paquet fait un peu plus que ce que vous avez publié (jetez un œil à la source, ce n'est qu'un fichier). Le projet est toujours actif (a été mis à jour 2 jours avant ma réponse initiale, plus de sept ans plus tard (dernière vérification le 30/06/2020), il est toujours mis à jour).
attention : il y a un deuxième paquet autour, nommé slugify
. Si vous possédez les deux, vous risquez de rencontrer un problème, car ils portent le même nom pour l'importation. Celui que je viens de nommer slugify
n'a pas fait tout ce que j'ai vérifié rapidement: "Ich heiße"
est devenu "ich-heie"
(devrait être "ich-heisse"
), alors assurez-vous de choisir le bon, lorsque vous utilisez pip
ou easy_install
.