10 puntos por GN⁺ 2025-05-23 | 1 comentarios | Compartir por WhatsApp
  • Es una herramienta que elimina los elementos innecesarios (comentarios, barra lateral, encabezado, pie de página, etc.) de una página web para dejar solo el contenido principal
  • A diferencia de Mozilla Readability, funciona de forma más flexible y admite una estandarización consistente de HTML para fórmulas, bloques de código, notas al pie, etc.
  • Fue desarrollada para Obsidian Web Clipper y busca compatibilidad con otras herramientas de conversión de HTML a Markdown (como Turndown)
  • Incorpora funciones de extracción de diversos metadatos, como estilos móviles y datos de schema.org
  • Es compatible tanto con Node.js como con navegadores, y permite elegir entre distintos bundles según el caso de uso

Diferencias entre Defuddle y Readability

  • Usa un filtrado más permisivo para reducir la eliminación de elementos dudosos
  • Maneja de forma consistente áreas especiales como notas al pie, fórmulas y código
  • Toma como referencia la hoja de estilos móvil de la página
  • Puede extraer información adicional como metadatos de schema.org, imágenes, favicon y fecha de publicación

Composición de bundles

  • Bundle Core (defuddle): adecuado para uso en navegador, sin dependencias externas
  • Bundle Full (defuddle/full): incluye funciones adicionales como análisis de fórmulas
  • Bundle Node (defuddle/node): optimizado para entornos Node.js (JSDOM), con soporte completo para fórmulas y conversión a Markdown

Estructura del objeto de retorno

Defuddle devuelve un objeto con información como la siguiente

  • author: nombre del autor del artículo o la página
  • content: cadena con el contenido principal depurado
  • description: descripción resumida del artículo o la página
  • domain: nombre de dominio del sitio
  • favicon: URL del favicon principal del sitio
  • image: URL de la imagen principal
  • metaTags: información de meta tags
  • parseTime: tiempo de procesamiento (en milisegundos)
  • published: información de fecha de publicación
  • site: nombre del sitio
  • schemaOrgData: datos extraídos de schema.org
  • title: título del contenido
  • wordCount: cantidad de palabras del contenido principal

Opciones

  • debug: activa el logging de depuración
  • url: especifica la URL de la página a analizar
  • markdown: convierte el contenido principal a Markdown
  • separateMarkdown: devuelve HTML y Markdown al mismo tiempo
  • removeExactSelectors: opción para eliminar selectores de coincidencia exacta (anuncios, botones sociales, etc.) (valor predeterminado: true)
  • removePartialSelectors: opción para eliminar selectores de coincidencia parcial (anuncios similares, etc.) (valor predeterminado: true)

1 comentarios

 
GN⁺ 2025-05-23
Comentarios de Hacker News
  • No me gusta cómo el editor WYSIWYG que uso convierte de markdown a HTML, así que me da la impresión de que si hiciera mi propia barra de herramientas y editor y les aplicara esta herramienta, podría obtener mejores resultados.

  • Hace poco investigué un tema parecido y no estaba seguro de la calidad de Readability implementado en varios lenguajes. Readability.js era el mejor, pero el entorno de JavaScript no encajaba con mi proyecto. Al final elegí la biblioteca de Python Trafilatura para extraer contenido de la mejor calidad, incluyendo metadatos, con precisión. Quizá comparar mi implementación con Trafilatura podría ayudar a encontrar puntos de mejora.

    • Si usas Go, existe una versión de Readability para Go y un port de Trafilatura para Go que mantengo yo. La versión en Go de Trafilatura tiene un rendimiento similar al de la versión en Python. Enlaces de referencia: go-shiori/go-readability, markusmobius/go-trafilatura
    • La documentación oficial de Trafilatura se puede consultar aquí. Por cierto, Trafilatura significa "extrusión" en italiano. También se explica que el nombre viene de la propiedad de los macarrones de retener bien la salsa, junto con un interesante trasfondo sobre términos de pasta. (Y la grafía correcta es trafilatura, no trifatura).
  • Llevo usando Obsidian Clipper desde su lanzamiento y valoro especialmente su función de extracción basada en perfiles por sitio. Incluso si no eres usuario de Obsidian, la calidad de extracción a markdown es de las más confiables que he visto hasta ahora.

    • Gracias por la recomendación.
  • Ahora que los sitios web se han vuelto cada vez más complejos y distractores, creo que hace falta un convertidor a markdown robusto que permita a los lectores concentrarse en el contenido real. Me alegra ver un proyecto que viene a llenar el vacío que deja Readability, y le deseo mucho éxito.

  • Quedé tan impresionado con la calidad de conversión a markdown de Obsidian Web Clipper que, al revisar su código fuente, terminé descubriendo Defuddle. Planeo usarlo en una app de read-it-later/base de conocimiento que estoy desarrollando, así que quería agradecer de antemano.

  • Me da curiosidad si Readability de Mozilla realmente está abandonado. La última versión salió hace 2 meses y el mantenedor Gijs responde issues de forma muy activa.

    • Esa base de código deja mucho que desear. Comparto mi experiencia de haberla forkeado en el trabajo para corregir bugs. Por ejemplo, hay un bug que hace que toda la información de precios en páginas con idiomas como el neerlandés, donde se usan comas entre números, sea reconocida como texto importante. Intenté abrir un PR, pero era obligatorio pasar las pruebas, y como las pruebas fallaban en la página que yo había usado, tuve que lidiar con la ineficiencia de no poder hacer merge fácilmente.
  • Presentación de un proyecto similar desarrollado en PHP: markydown. Tiene la ventaja de poder selfhostearse fácilmente.

  • Caso de uso real de Obsidian Web Clipper como herramienta muy útil para convertir conversaciones de chatGPT a markdown o para usarlas de forma sencilla al imprimir.

    • Algunos clientes, incluido Kagi Assistant, ofrecen la función de guardar directamente las conversaciones en markdown. También parece una buena idea usar el web-clipper de Obsidian.
    • Yo le pido directamente a chatGPT resúmenes o el contenido que necesito en formato de archivo markdown y así lo aprovecho.
  • Curiosidad sobre por qué en algunos sitios web, al acceder en modo lectura (por ejemplo, el lector de iPhone), la pantalla queda en blanco o el texto no se ve bien. Pasa sobre todo en sitios de noticias. Se plantea si la causa es que lo ocultan intencionalmente para mostrar anuncios y, de ser posible, cómo lo hacen.

    • Este problema suele deberse muchas veces a banners de privacidad o avisos de cookies, especialmente en la UE/Reino Unido/California. Algunos sitios muestran estos banners solo como modales, que el modo lectura maneja bien, pero en otros casos usan redirecciones o renderizado del lado del servidor y terminan tapando por completo el contenido. Si vas a usar modo lectura, se recomienda primero cerrar esos banners y volver a intentarlo.