Defuddle - Readabilityを置き換えるHTML-to-Markdownオープンソース
(github.com/kepano)- Webページから**不要な要素(コメント、サイドバー、ヘッダー、フッターなど)**を取り除き、本文だけを残すツール
- Mozilla Readabilityとは異なり、より柔軟に動作し、数式・コードブロック・脚注などの一貫したHTML標準化をサポート
- Obsidian Web Clipper向けに開発され、他のHTML-to-Markdown変換ツール(Turndownなど)との互換性を目指している
- モバイルスタイルやschema.orgデータなど、多様なメタデータ抽出機能を内蔵
- Node.jsとブラウザーの両方をサポートし、用途に応じてさまざまなバンドルを選択可能
DefuddleとReadabilityの違い
- より寛容なフィルタリングにより、不確かな要素の削除を減らす
- 脚注、数式、コードなど特殊領域を一貫して処理
- ページのモバイル用スタイルシートを参照
- schema.orgメタデータ、画像、favicon、公開日など追加情報の抽出が可能
バンドル構成
- Coreバンドル(defuddle): ブラウザー利用に適し、外部依存なし
- Fullバンドル(defuddle/full): 数式パースなどの追加機能を搭載
- Nodeバンドル(defuddle/node): Node.js(JSDOM)環境に最適化され、数式・Markdown変換を完全サポート
返却オブジェクト構造
Defuddleは以下の情報を含むオブジェクトを返す
- author: 記事またはページの著者名
- content: 整形された本文コンテンツ文字列
- description: 記事またはページの要約説明
- domain: サイトのドメイン名
- favicon: サイトの代表ファビコンURL
- image: 代表画像URL
- metaTags: メタタグ情報
- parseTime: 処理所要時間(ミリ秒単位)
- published: 公開日情報
- site: サイト名
- schemaOrgData: schema.org抽出データ
- title: コンテンツのタイトル
- wordCount: 本文の単語数
オプション
- debug: デバッグログを有効化
- url: 解析対象ページURLを指定
- markdown: 本文をMarkdownに変換
- separateMarkdown: HTMLとMarkdownを同時に返却
- removeExactSelectors: 完全一致セレクター(広告、ソーシャルボタンなど)を削除するオプション(デフォルト値 true)
- removePartialSelectors: 部分一致セレクター(類似広告など)を削除するオプション(デフォルト値 true)
1件のコメント
Hacker Newsのコメント
普段使っているWYSIWYGエディタのMarkdownからHTMLへの変換方法が気に入らないので、自分でツールバーとエディタを作ってこのツールを適用すれば、より良い結果が得られそうだという期待
最近似たテーマを調べたことがあるが、さまざまな言語で実装されたReadabilityの品質には確信が持てなかった。Readability.jsが最も優れていたが、JavaScript環境が自分のプロジェクトには合わなかった。結局、メタデータまで正確に高品質なコンテンツを抽出する用途では、PythonのTrafilaturaライブラリを選んだ。自分の実装とTrafilaturaを比較すれば、改善ポイントが見つかるかもしれないという提案
Obsidian Clipperをリリース初期から使っており、サイトごとのプロファイルベース抽出機能を特に高く評価している。Obsidianユーザーでなくても、Markdown抽出品質はこれまで見た中で最も信頼できる水準
最近のウェブサイトはますます複雑で雑然としているので、読者が実際のコンテンツに集中できるようにする堅牢なMarkdownコンバーターがぜひ必要だと思う。Readabilityの空白を埋めるプロジェクトが登場してうれしい、という感想と応援
Obsidian Web ClipperのMarkdown変換品質に感嘆してソースコードを分析していたところ、Defuddleを見つけた。自分で開発しているread-it-later/knowledge-baseアプリに活用する予定なので、先に感謝を伝えたい気持ち
MozillaのReadabilityが本当に放置されているのか気になる。最近のリリースは2か月前で、メンテナーのGijsのissue対応も非常に活発
PHPで開発した類似プロジェクト markydown の紹介。手軽にセルフホストできる利点
Obsidian Web Clipperは、chatGPTの会話内容をMarkdownに変換したり、簡単に印刷用として使ったりする際に非常に便利なツールだという実利用例
一部のウェブサイトで、読み取りモード(例: iPhoneのリーダー)でアクセスすると画面が真っ白になったり、記事が正しく表示されなかったりする理由への疑問。特にニュースサイトでよく遭遇する現象。広告表示のために意図的に隠しているのか、可能ならどう実装しているのかという問題提起