Defuddle – Open-Source-HTML-zu-Markdown als Ersatz für Readability
(github.com/kepano)- Ein Tool, das auf Webseiten unnötige Elemente (Kommentare, Seitenleisten, Header, Footer usw.) entfernt und nur den Hauptinhalt übrig lässt
- Im Gegensatz zu Mozilla Readability arbeitet es flexibler und unterstützt eine konsistente HTML-Standardisierung für Formeln, Codeblöcke, Fußnoten usw.
- Wurde für den Obsidian Web Clipper entwickelt und zielt auf Kompatibilität mit anderen HTML-zu-Markdown-Konvertierungstools (wie Turndown) ab
- Bietet integrierte Funktionen zum Extrahieren verschiedener Metadaten wie mobile Styles und schema.org-Daten
- Unterstützt sowohl Node.js als auch Browser, mit verschiedenen Bundles je nach Einsatzzweck
Unterschiede zwischen Defuddle und Readability
- Reduziert durch großzügigeres Filtering das Entfernen unsicherer Elemente
- Behandelt Sonderbereiche wie Fußnoten, Formeln und Code konsistent
- Berücksichtigt die mobilen Stylesheets der Seite
- Kann zusätzliche Informationen extrahieren wie schema.org-Metadaten, Bilder, Favicon und Veröffentlichungsdatum
Bundle-Zusammenstellung
- Core-Bundle (
defuddle): Für die Nutzung im Browser geeignet, ohne externe Abhängigkeiten - Full-Bundle (
defuddle/full): Mit zusätzlichen Funktionen wie Formel-Parsing - Node-Bundle (
defuddle/node): Für Node.js-Umgebungen (JSDOM) optimiert, mit vollständiger Unterstützung für Formeln und Markdown-Konvertierung
Struktur des Rückgabeobjekts
Defuddle gibt ein Objekt mit Informationen wie den folgenden zurück
- author: Name des Autors des Artikels oder der Seite
- content: String mit dem bereinigten Hauptinhalt
- description: Kurzbeschreibung des Artikels oder der Seite
- domain: Domainname der Website
- favicon: URL des Favicons der Website
- image: URL des Vorschaubilds
- metaTags: Informationen zu den Meta-Tags
- parseTime: Verarbeitungsdauer (in Millisekunden)
- published: Informationen zum Veröffentlichungsdatum
- site: Name der Website
- schemaOrgData: Extrahierte schema.org-Daten
- title: Titel des Inhalts
- wordCount: Anzahl der Wörter im Hauptinhalt
Optionen
- debug: Aktiviert Debug-Logging
- url: Gibt die URL der zu analysierenden Seite an
- markdown: Konvertiert den Hauptinhalt in Markdown
- separateMarkdown: Gibt HTML und Markdown gleichzeitig zurück
- removeExactSelectors: Option zum Entfernen exakt passender Selektoren (Werbung, Social Buttons usw.) (Standardwert
true) - removePartialSelectors: Option zum Entfernen teilweise passender Selektoren (ähnliche Werbung usw.) (Standardwert
true)
1 Kommentare
Hacker-News-Kommentare
Mir gefällt nicht, wie der von mir genutzte WYSIWYG-Editor Markdown in HTML umwandelt; daher habe ich die Hoffnung, mit einer selbst gebauten Toolbar und einem eigenen Editor in Kombination mit diesem Tool bessere Ergebnisse zu erzielen.
Ich habe mich kürzlich mit einem ähnlichen Thema beschäftigt, war aber von der Qualität der in verschiedenen Sprachen implementierten Readability-Varianten nicht überzeugt. Readability.js war am besten, aber eine JavaScript-Umgebung passte nicht zu meinem Projekt. Am Ende fiel die Wahl auf die Python-Bibliothek Trafilatura, um Inhalte mitsamt Metadaten in höchster Qualität und mit guter Genauigkeit zu extrahieren. Wenn man meine Implementierung mit Trafilatura vergleicht, ließen sich vermutlich Ansatzpunkte für Verbesserungen finden.
trafilaturaist, nichttrifatura.)Ich nutze Obsidian Clipper seit dem Launch und schätze besonders die profilbasierte Extraktion pro Website. Auch für Nicht-Obsidian-Nutzer ist die Qualität der Markdown-Extraktion eine der verlässlichsten, die ich bisher gesehen habe.
Angesichts dessen, wie komplex und unübersichtlich Websites in letzter Zeit geworden sind, braucht es unbedingt einen robusten Markdown-Konverter, der es Lesern ermöglicht, sich auf die eigentlichen Inhalte zu konzentrieren. Schön zu sehen, dass ein Projekt auftaucht, das die Lücke von Readability füllt — viel Erfolg damit.
Ich war von der Qualität der Markdown-Konvertierung im Obsidian Web Clipper so beeindruckt, dass ich den Quellcode analysiert habe und dabei auf Defuddle gestoßen bin. Ich plane, es in meiner selbst entwickelten Read-it-later-/Knowledge-Base-App einzusetzen, und wollte mich schon im Voraus bedanken.
Ich frage mich, ob Mozillas Readability wirklich vernachlässigt wird. Das letzte Release ist erst zwei Monate her, und der Maintainer Gijs reagiert auch sehr aktiv auf Issues.
Vorstellung eines ähnlichen Projekts in PHP: markydown. Vorteil: einfaches Self-Hosting.
Ein praktischer Anwendungsfall dafür, dass Obsidian Web Clipper ein sehr nützliches Tool ist, wenn man chatGPT-Unterhaltungen in Markdown umwandeln oder etwas unkompliziert für den Druck aufbereiten möchte.
Ich frage mich, warum bei manchen Websites im Lesemodus (z. B. iPhone Reader) der Bildschirm weiß bleibt oder der Text nicht richtig angezeigt wird. Das passiert besonders häufig bei News-Websites. Liegt das daran, dass Inhalte absichtlich versteckt werden, um Werbung einzublenden, und wenn ja, wie wird das technisch umgesetzt?