Featured image of post Encontrando enlaces rotos en el blog con Lychee

Encontrando enlaces rotos en el blog con Lychee

Con el cambio de blog de Wordpress a Hugo quise revisar automáticamente enlaces rotos, pero ahora instalar un plugin no es una opción.

Poco a poco me he acostumbrado al flujo de trabajo de Hugo. Podrán ver algunas mejoras, por ejemplo, acabo de instalar giscus como sistema de comentarios. Eso fue sencillo, el theme tiene muchas opciones para eso.

Pero para detectar enlaces rotos ¡Ahhhhhh! esa es otra historia.

Con WordPress lo más sencillo era buscar algún plugin que hiciera la tarea para luego ir corrigiendo los enlaces que con el tiempo han dejado de funcionar.

Pero esto es Hugo y los plugins ya no son una opción.

Lychee es veloz

Después de investigar cuales serían mis opciones di con un programita peculiar.

Lychee esta basado en Rust y es realmente veloz, como un rayo 🌩 (imáginese la escena de pixar por favor, si ya sabe cual).

Lychee encuentra enlaces rotos y direcciones de correo electrónico dentro de Markdown, HTML, reStructuredText o cualquier otro archivo de texto o sitio web.

Con esta gran herramienta a la mano, solo necesitaba automatizar un poco la tarea.

Empezamos generando el sitio web

Es lo más sencillo, ejecutar el comando que genera el sitio web en la carpeta public

hugo

Si se completa exitosamente este comando (siempre puede haber errores) pasamos a la siguiente etapa.

Buscar los enlaces rotos con lychee

Pues ya tenemos nuestro sitio web estático generado en la carpeta public.

Ahora a buscar los enlaces rotos solamente en los archivos con extensión html.

lychee public --include ".html" --format json --root-dir / --output enlaces_rotos.json

Buscando esos enlaces que han dejado de funcionar

Y como pueden ver guardamos los resultados en el archivo enlaces_rotos.json

Pero el resultado no es muy amigable que digamos, por eso agregamos un paso más.

Generar un archivo CSV con los resultados

Para encontrar la aguja en el pajar y hacer todo más manejable decidí generar un archivo CSV que puedo abrir sin problemas en cualquier programa de hoja de cálculo.

Para hacerlo me ayudó el programa jq que es especialista en obtener información de archivos JSON .

jq -r '
.error_map
| to_entries[]
| .key as $source
| .value[]
| select(.url | startswith("http"))
| "\($source) | \(.url) | \(.status.text)"
' enlaces_rotos.json > enlaces-rotos-externos.csv

Revisando los enlaces rotos externos del blog

Algunos no están realmente rotos, pero con el tiempo aprendes a ignorar los errores comunes para centrarte en los que realmente necesitan mi atención.

Lo más probable es que haga un archivo bash que ejecute todo esto regularmente.

¿Ustedes como enfrentan este problema? ¿Qué herramientas utilizan?

“Conócete a ti mismo.”

Sócrates
Licensed under CC BY-NC-SA 4.0
Última actualización 18 dic. 2025 1218:00 CST
Todas las imágenes, nombres de productos y nombres de empresa o logotipos citados en esta página web son propiedad de sus respectivos propietarios.
Creado con Hugo
Tema Stack diseñado por Jimmy