import { DOMParser } from "linkedom";
function extract(html, baseUrl, options) {
try {
const domParser = new DOMParser();
let doc;
try {
doc = domParser.parseFromString(html, "text/html");
} catch (e) {
console.error("Failed to parse HTML:", e.message);
return {
errorType: "HtmlParseError",
error: "Failed to parse HTML: " + e.message,
};
}
const reader = new Readability(doc, options || {});
let article;
try {
article = reader.parse();
} catch (e) {
return {
errorType: "RuntimeError",
error: "Readability runtime error: " + e.message,
};
}
if (!article) {
return {
errorType: "ExtractionError",
error: "Failed to extract readable content",
};
}
return article;
} catch (e) {
return {
errorType: "RuntimeError",
error: "Unexpected error: " + e.message,
};
}
}
globalThis.extract = extract;