txtdot/src/handlers/readability.ts
2023-08-14 16:54:05 +03:00

20 lines
508 B
TypeScript

import { Readability } from "@mozilla/readability";
import { JSDOM } from "jsdom";
import { IHandlerOutput } from "./handler.interface";
export async function readability(dom: JSDOM): Promise<IHandlerOutput> {
const reader = new Readability(dom.window.document);
const parsed = reader.parse();
if (!parsed) {
throw new Error("Failed to parse [readability]");
}
return {
content: parsed.content,
textContent: parsed.textContent,
title: parsed.title,
lang: parsed.lang,
};
}