Hay un paquete de Python llamado python-slugify
, que hace un buen trabajo de slugificar:
pip install python-slugify
Funciona así:
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")
Ver más ejemplos
Este paquete hace un poco más de lo que publicó (eche un vistazo a la fuente, es solo un archivo). El proyecto todavía está activo (se actualizó 2 días antes de que respondiera originalmente, más de siete años después (última consulta 2020-06-30), todavía se actualiza).
cuidado : hay un segundo paquete, llamado slugify
. Si tiene ambos, es posible que tenga un problema, ya que tienen el mismo nombre para la importación. El que acabo de nombrar slugify
no hizo todo lo que verifiqué rápidamente: se "Ich heiße"
convirtió "ich-heie"
(debería ser "ich-heisse"
), así que asegúrese de elegir el correcto cuando use pip
o easy_install
.