Python-Slugify: Crea slugs amigables para SEO con caracteres Unicode

Python-Slugify: Tu herramienta esencial para slugs limpios y SEO-friendly

En el mundo del desarrollo web y la gestión de datos, convertir texto legible para humanos en cadenas de texto aptas para URLs (conocidas como 'slugs') es una necesidad común. Ya sea para URLs de entradas de blog, nombres de archivos de imagen o identificadores únicos en una base de datos, los slugs desempeñan un papel crucial en la usabilidad y la optimización para motores de búsqueda (SEO).

Presentamos python-slugify, una biblioteca de Python potente y altamente configurable, diseñada para manejar esta tarea con una elegancia excepcional, especialmente al tratar con la complejidad de los caracteres Unicode.

¿Qué es un slug?

Un slug es la parte de una URL que identifica una página en particular en un formato de palabras clave legible para humanos. Por ejemplo, en tudominio.com/blog/mi-titulo-genial-del-articulo, mi-titulo-genial-del-articulo es el slug.

¿Por qué python-slugify?

Esta biblioteca destaca por su sólida gestión de cadenas Unicode, una característica que a menudo se pasa por alto en herramientas de slugificación más simples. Convierte de forma inteligente caracteres de varios idiomas a sus equivalentes ASCII, asegurando que tus slugs sean universalmente compatibles y significativos.

Características principales:

  • Soporte Unicode: Convierte sin problemas caracteres internacionales (por ejemplo, 'C\'est déjà l\'été.' se convierte en 'c-est-deja-l-ete'; '影師嗎' se convierte en 'ying-shi-ma').
  • Opciones personalizables: Ofrece una amplia gama de parámetros para controlar la salida, incluyendo:
    • entities, decimal, hexadecimal: Para manejar entidades HTML.
    • max_length, word_boundary, save_order: Para controlar la longitud del slug y la integridad de las palabras.
    • separator: Para definir el caracter usado para separar palabras (el guion - es el predeterminado).
    • stopwords: Para eliminar palabras comunes como 'el', 'en', 'un' y mantener los slugs concisos.
    • regex_pattern: Para aplicar expresiones regulares personalizadas para un filtrado de caracteres avanzado.
    • lowercase: Opción para conservar las mayúsculas/minúsculas originales.
    • replacements: Para definir reemplazos personalizados de caracteres o cadenas (por ejemplo, [['|', 'o']]).
    • allow_unicode: Para conservar caracteres Unicode originales si se desea.
  • Fácil instalación: Disponible a través de pip, lo que facilita su integración en tus proyectos de Python.

    pip install python-slugify
    # O, con un paquete unidecode alternativo:
    pip install python-slugify[unidecode]
    
  • Herramienta de línea de comandos: Incluye una práctica utilidad de línea de comandos slugify para transformaciones rápidas directamente desde tu terminal.

    echo "Tomando entrada desde STDIN" | slugify --stdin
    # Salida: tomando-entrada-desde-stdin
    
    slugify tomando entrada desde la-linea-de-comandos
    # Salida: tomando-entrada-desde-la-linea-de-comandos
    

Cómo usarlo:

Usar python-slugify es intuitivo. Simplemente importa la función slugify y pásale tu texto:

from slugify import slugify

# Uso básico
txt = "Esto es una prueba ---"
r = slugify(txt)
print(r) # Salida: esto-es-una-prueba

# Manejo de caracteres no ingleses
txt = 'Компьютер'
r = slugify(txt)
print(r) # Salida: kompiuter

# Con max_length y word_boundary
txt = 'jaja---lol-méméméoo--a'
r = slugify(txt, max_length=15, word_boundary=True)
print(r) # Salida: jaja-lol-a

# Eliminando stopwords
txt = 'el rápido zorro marrón salta sobre el perro perezoso'
r = slugify(txt, stopwords=['el'])
print(r) # Salida: rapido-zorro-marron-salta-sobre-perro-perezoso

# Reemplazos personalizados
txt = '10 | 20 %'
r = slugify(txt, replacements=[['|', 'o'], ['%', 'porciento']])
print(r) # Salida: 10-o-20-porciento

Licencia y dependencias

python-slugify se publica bajo la Licencia MIT, lo que la hace gratuita para uso comercial y personal. Por defecto, usa text-unidecode para la decodificación, que tiene licencia GPL y Perl Artistic. Para quienes lo prefieran, se puede instalar un paquete Unidecode (GPL) alternativo.

Contribuciones

Este proyecto da la bienvenida a las contribuciones. Se anima a los desarrolladores a leer las directrices de contribución antes de enviar solicitudes de extracción (pull requests).

Con más de 1.500 estrellas y 110 forks en GitHub, python-slugify es una herramienta bien mantenida y ampliamente utilizada que simplifica un aspecto crucial de la gestión de contenido web. Su flexibilidad y su completo conjunto de características la convierten en una adición invaluable para el kit de herramientas de cualquier desarrollador de Python.

Artículo original: Ver original

Compartir este artículo