10 poin oleh GN⁺ 2025-05-23 | 1 komentar | Bagikan ke WhatsApp
  • Alat untuk menghapus elemen yang tidak diperlukan (komentar, sidebar, header, footer, dll.) dari halaman web dan hanya menyisakan konten utama
  • Tidak seperti Mozilla Readability, alat ini bekerja lebih fleksibel dan mendukung standarisasi HTML yang konsisten untuk rumus, blok kode, catatan kaki, dll.
  • Dikembangkan untuk Obsidian Web Clipper, dan menargetkan kompatibilitas dengan alat konversi HTML-to-Markdown lain (seperti Turndown)
  • Memiliki fitur ekstraksi berbagai metadata bawaan seperti gaya mobile dan data schema.org
  • Mendukung Node.js maupun browser, dan tersedia berbagai bundle sesuai kebutuhan penggunaan

Perbedaan Defuddle dengan Readability

  • Dengan pemfilteran yang lebih longgar, mengurangi penghapusan elemen yang belum pasti
  • Menangani area khusus seperti catatan kaki, rumus, dan kode secara konsisten
  • Merujuk pada stylesheet mobile halaman
  • Dapat mengekstrak informasi tambahan seperti metadata schema.org, gambar, favicon, tanggal publikasi, dll.

Komposisi bundle

  • Bundle Core (defuddle): Cocok untuk penggunaan di browser, tanpa dependensi eksternal
  • Bundle Full (defuddle/full): Menyertakan fitur tambahan seperti parsing rumus
  • Bundle Node (defuddle/node): Dioptimalkan untuk lingkungan Node.js (JSDOM), dengan dukungan penuh untuk rumus dan konversi Markdown

Struktur objek yang dikembalikan

Defuddle mengembalikan objek yang berisi informasi berikut

  • author: Nama penulis artikel atau halaman
  • content: String konten utama yang telah dibersihkan
  • description: Deskripsi ringkas artikel atau halaman
  • domain: Nama domain situs
  • favicon: URL favicon utama situs
  • image: URL gambar utama
  • metaTags: Informasi meta tag
  • parseTime: Waktu pemrosesan (dalam milidetik)
  • published: Informasi tanggal terbit
  • site: Nama situs
  • schemaOrgData: Data hasil ekstraksi schema.org
  • title: Judul konten
  • wordCount: Jumlah kata dalam konten utama

Opsi

  • debug: Mengaktifkan logging debug
  • url: Menentukan URL halaman target analisis
  • markdown: Mengonversi konten utama ke Markdown
  • separateMarkdown: Mengembalikan HTML dan Markdown secara bersamaan
  • removeExactSelectors: Opsi untuk menghapus selector dengan kecocokan tepat (iklan, tombol sosial, dll.) (default true)
  • removePartialSelectors: Opsi untuk menghapus selector dengan kecocokan parsial (iklan serupa, dll.) (default true)

1 komentar

 
GN⁺ 2025-05-23
Komentar Hacker News
  • Saya tidak suka cara editor wysiwyg yang saya gunakan mengonversi Markdown ke HTML, jadi saya berharap jika membuat toolbar dan editor sendiri lalu menerapkan alat ini, hasilnya akan lebih baik.

  • Saya baru-baru ini meneliti topik serupa, dan saya tidak yakin dengan kualitas berbagai implementasi Readability dalam banyak bahasa. Readability.js adalah yang terbaik, tetapi lingkungan Javascript tidak cocok untuk proyek saya. Akhirnya saya memilih library Python Trafilatura untuk mengekstrak konten berkualitas tertinggi beserta metadata secara akurat. Mungkin dengan membandingkan implementasi saya dengan Trafilatura, kita bisa menemukan titik-titik yang perlu ditingkatkan.

    • Jika menggunakan bahasa Go, ada versi port Readability dan Trafilatura untuk Go yang saya kelola. Versi Go dari Trafilatura memiliki performa yang mirip dengan versi Python. Tautan referensi: go-shiori/go-readability, markusmobius/go-trafilatura
    • Dokumentasi resmi Trafilatura bisa dilihat di sini. Sebagai referensi, Trafilatura berarti "ekstrusi" dalam bahasa Italia. Namanya disebut berasal dari sifat makaroni yang menyerap saus dengan baik, sekaligus memperkenalkan latar belakang istilah pasta yang menarik. (Dan penegasan bahwa ejaan yang benar adalah trafilatura, bukan trifatura.)
  • Saya sudah menggunakan Obsidian Clipper sejak awal peluncurannya, dan sangat menghargai fitur ekstraksi berbasis profil per situs. Bahkan bagi yang bukan pengguna Obsidian, kualitas ekstraksi Markdown-nya termasuk yang paling dapat dipercaya yang pernah saya lihat.

    • Terima kasih atas tips yang direkomendasikan.
  • Di tengah kondisi situs web yang belakangan makin kompleks dan penuh distraksi, rasanya kita benar-benar membutuhkan konverter Markdown yang robust agar pembaca bisa fokus pada konten yang sebenarnya. Senang melihat ada proyek yang mengisi kekosongan yang ditinggalkan Readability, dan semoga sukses.

  • Saya menemukan Defuddle saat menganalisis source code karena kagum dengan kualitas konversi Markdown dari Obsidian Web Clipper. Saya berencana memakainya untuk aplikasi read-it-later/knowledge-base yang sedang saya kembangkan, jadi saya ingin mengucapkan terima kasih lebih dulu.

  • Saya penasaran apakah Readability dari Mozilla benar-benar ditelantarkan. Rilis terbarunya baru 2 bulan lalu, dan maintainer-nya, Gijs, juga sangat aktif merespons issue.

    • Saya merasa codebase itu masih punya banyak hal yang perlu diperbaiki. Saya pernah mem-fork-nya untuk memperbaiki bug dalam pekerjaan saya. Contohnya, ada bug yang membuat semua informasi harga pada halaman yang memuat bahasa dengan penggunaan koma di antara angka, seperti Belanda, dikenali sebagai teks penting. Saat saya ingin mengajukan PR, ternyata harus lulus test, tetapi test gagal pada halaman yang saya uji, sehingga saya mengalami proses yang tidak efisien dan sulit untuk merge.
  • Memperkenalkan proyek serupa yang dibuat dengan PHP, markydown. Keunggulannya adalah mudah untuk self-hosting.

  • Obsidian Web Clipper adalah alat yang sangat berguna untuk mengonversi percakapan chatGPT ke Markdown, atau sekadar dipakai untuk keperluan cetak.

    • Beberapa klien, termasuk Kagi Assistant, menyediakan fitur untuk langsung menyimpan isi percakapan dalam bentuk Markdown. Pendapat bahwa memanfaatkan web-clipper dari Obsidian juga merupakan ide yang bagus.
    • Saya sendiri meminta chatGPT langsung membuat ringkasan atau isi yang dibutuhkan dalam bentuk file Markdown untuk digunakan.
  • Ada rasa penasaran tentang mengapa pada beberapa situs web, saat diakses lewat mode baca (misalnya Reader di iPhone), layar menjadi putih atau artikelnya tidak tampil dengan benar. Hal ini sering terjadi terutama di situs berita. Muncul pertanyaan apakah penyebabnya adalah konten sengaja disembunyikan demi penayangan iklan, dan jika memungkinkan, bagaimana cara penerapannya.

    • Masalah seperti ini sering kali disebabkan oleh banner privasi atau notifikasi cookie, terutama di wilayah seperti EU/UK/California. Beberapa situs menampilkan banner ini hanya sebagai modal, yang biasanya masih bisa ditangani mode baca, tetapi ada juga yang memakai redirect atau server-side rendering sehingga konten benar-benar tertutup. Saat menggunakan mode baca, disarankan untuk menutup banner terkait terlebih dahulu lalu mencobanya lagi.