Spaces:
Sleeping
Sleeping
| """Utilidades compartidas por los servicios.""" | |
| from __future__ import annotations | |
| import re | |
| import unicodedata | |
| def slugify(value: str) -> str: | |
| """Convierte un texto en un slug apto para URLs. | |
| Elimina acentos, pasa a minúsculas y reemplaza los separadores por | |
| guiones. | |
| """ | |
| normalized = ( | |
| unicodedata.normalize("NFKD", value) | |
| .encode("ascii", "ignore") | |
| .decode("ascii") | |
| ) | |
| normalized = re.sub(r"[^\w\s-]", "", normalized).strip().lower() | |
| slug = re.sub(r"[-\s]+", "-", normalized) | |
| return slug or "sin-nombre" | |