- 웹 페이지에서 필요 없는 요소(댓글, 사이드바, 헤더, 푸터 등) 를 제거해 본문만 남기는 도구임
- 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)