diff --git a/src/lib/utils/extract.ts b/src/lib/utils/extract.ts index 5e3b3d8..2f59e7f 100644 --- a/src/lib/utils/extract.ts +++ b/src/lib/utils/extract.ts @@ -1,5 +1,28 @@ import { Readability } from "@mozilla/readability"; -import { JSDOM } from "jsdom"; +import { JSDOM, VirtualConsole } from "jsdom"; + +// Create a virtual console that suppresses CSS parsing errors +// JSDOM has issues with modern CSS (variables, etc.) that don't affect Readability +function createVirtualConsole() { + const virtualConsole = new VirtualConsole(); + virtualConsole.on("error", () => { + // Suppress CSS parsing errors + }); + virtualConsole.on("warn", () => { + // Suppress warnings + }); + return virtualConsole; +} + +// Strip style tags and inline styles from HTML to prevent JSDOM CSS parsing errors +// Readability doesn't need CSS - it only needs the DOM structure +function stripStyles(html: string): string { + // Remove