import { stripTags } from "./common.mjs";
export function extractTitle(html) {
return matchContent(html, /
]*>([\s\S]*?)<\/title>/i) || "";
}
export function extractMeta(html) {
const metas = [];
const pattern = /]+)>/gi;
let match;
while ((match = pattern.exec(html))) {
const attrs = parseAttrs(match[1]);
metas.push(attrs);
}
return metas;
}
export function extractSeo(html, url) {
const metas = extractMeta(html);
const metaBy = (field, value) => metas.find((meta) => meta[field] === value)?.content || "";
const canonical = matchAttr(html, /]*rel\s*=\s*["']canonical["'][^>]*>/i, "href");
const icons = [];
const linkPattern = /]+)>/gi;
let linkMatch;
while ((linkMatch = linkPattern.exec(html))) {
const attrs = parseAttrs(linkMatch[1]);
if ((attrs.rel || "").toLowerCase().includes("icon")) icons.push(attrs.href);
}
const schema = [];
const schemaPattern = /