La eñe plantea un problema real para cualquier slugify: «año» sin la virgulilla se convierte en «ano», y son dos palabras completamente distintas en español (una significa «period de doce meses»; la otra, «orificio anal»). La mayoría de los generadores de slugs optan por transliterar «ñ» a «n» de todos modos, porque no hay una única convención aceptada para representarla en ASCII puro, y el resultado ambiguo simplemente se acepta como un costo del formato.
Qué hace la conversión a slug
- Convierte todas las letras a minúsculas.
- Sustituye espacios y signos de puntuación por guiones.
- Translitera o elimina caracteres fuera del latín básico (como el cirílico, la eñe o las letras con tilde).
- Colapsa guiones repetidos y recorta los guiones del inicio y del final.
Por ejemplo, el título «¡Hola, Mundo! ¿Cómo estás?» se convierte en algo como hola-mundo-como-estas, perdiendo tanto los signos de apertura como las tildes.
Por qué no basta con un URL-encode simple
El percent-encoding (por ejemplo, %C3%B1 para «ñ») es técnicamente válido en una URL, pero ilegible para una persona y parece poco fiable en la barra de direcciones o al compartir un enlace. Un slug resuelve precisamente el problema de la legibilidad, no solo la validez técnica.
Para qué sirve
- Generar automáticamente la URL de una entrada de blog a partir de su título en español.
- Crear un identificador legible a partir del nombre de un producto para una tienda online.
- Formar un nombre de archivo o una clase CSS a partir de un texto cualquiera, evitando caracteres no permitidos.
Colisiones: cuando títulos distintos dan el mismo slug
Los títulos «¡Hola, mundo!» y «hola mundo» se convierten, tras la normalización (minúsculas, eliminación de puntuación), en el mismo slug hola-mundo, aunque los textos originales sean distintos. Si el slug se usa como identificador único (por ejemplo, en la URL de un artículo), esa colisión hay que resolverla aparte, típicamente añadiendo un sufijo numérico o un ID al duplicado.