À propos du projet

Defuddle est une bibliothèque JavaScript qui extrait le contenu principal des pages web, en nettoyant les éléments superflus comme les commentaires, les barres latérales, les en-têtes et les pieds de page. Elle renvoie du HTML ou du Markdown nettoyé, ce qui la rend utile pour le clipping web, les modes de lecture ou l'analyse de contenu. ## Fonctionnalités clés - **Extraction de contenu** : Détecte et extrait automatiquement le contenu principal d'une page, en supprimant les éléments non essentiels. - **Standardisation HTML** : Normalise les titres, les blocs de code, les notes de bas de page, les formules mathématiques et les encadrés pour une sortie cohérente. - **Extraction de métadonnées** : Récupère le titre, l'auteur, la description, la date de publication et les données schema.org. - **Plusieurs bundles** : Core (navigateur), Full (ajoute la conversion math/Markdown) et Node.js (fonctionne avec toute implémentation DOM). - **Outil CLI** : Analysez des URL, des fichiers ou l'entrée standard directement depuis le terminal. - **Mode débogage** : Journalisation détaillée et suivi des suppressions pour diagnostiquer les problèmes d'extraction. - **Pipeline configurable** : Activez ou désactivez des étapes de traitement individuelles (par exemple, suppression des éléments cachés, suppression des images). ## Exemples d'utilisation ### Navigateur ```javascript import Defuddle from 'defuddle'; const defuddle = new Defuddle(document); const result = defuddle.parse(); console.log(result.content); // HTML nettoyé ``` ### Node.js (avec linkedom ou JSDOM) ```javascript import { parseHTML } from 'linkedom'; import { Defuddle } from 'defuddle/node'; const { document } = parseHTML(html); const result = await Defuddle(document, 'https://example.com/article', { markdown: true }); ``` ### CLI ```bash npx defuddle parse page.html --markdown npx defuddle parse https://example.com/article --json cat page.html | npx defuddle parse --output result.html ``` ## Objet de réponse Renvoie un objet avec des propriétés comme `title`, `author`, `content`, `description`, `domain`, `favicon`, `image`, `language`, `published`, `site`, `wordCount`, et plus encore. ## Options Les options clés incluent `markdown` (convertir en Markdown), `debug` (activer la journalisation), `removeHiddenElements`, `removeSmallImages`, `contentSelector` (contourner la détection automatique) et `useAsync` (permettre un repli tiers pour les applications monopages). ## Développement Construisez avec `npm install && npm run build`. Le projet utilise un pipeline d'étapes pour la notation du contenu, la suppression d'éléments et la standardisation. ## Services tiers Lorsque `useAsync` est activé et qu'aucun contenu local n'est trouvé (par exemple, applications monopages rendues côté client), Defuddle peut récupérer des données auprès d'API tierces comme FxTwitter pour le contenu X/Twitter. Désactivez avec `useAsync: false`. ## Débogage Activez `debug: true` pour obtenir un champ `debug` avec `contentSelector` (chemin CSS du contenu principal) et `removals` (liste des éléments supprimés avec raisons). Cela aide à diagnostiquer pourquoi du contenu est incorrectement supprimé ou conservé.