diff --git a/src/infrastructure/html-processor.ts b/src/infrastructure/html-processor.ts index 5fb420d..551fe22 100644 --- a/src/infrastructure/html-processor.ts +++ b/src/infrastructure/html-processor.ts @@ -69,11 +69,11 @@ export function extractLinks( return links; } -// Collect a newsletter's self-advertised feed declarations: -// . -// Returns raw href+type tuples; the domain decides which MIME types are feeds. -// Relative hrefs are absolutized against the sender base (best-effort); only -// http(s) URLs survive. Plain-text bodies have no → []. +// Collect a newsletter's self-advertised feed declarations from +// tags. Returns raw href+type tuples; the +// domain decides which MIME types count as a feed. Relative hrefs are +// absolutized against the sender base (best-effort); only http(s) URLs survive. +// Plain-text bodies have no → []. export function extractFeedLinks( content: string, base = "", @@ -88,6 +88,7 @@ export function extractFeedLinks( const type = (el.getAttribute("type") ?? "").trim(); const rawHref = (el.getAttribute("href") ?? "").trim(); if (!type || !rawHref) return; + // toAbsolute() skips already-absolute hrefs (returns null), so keep those as-is. const href = /^https?:\/\//i.test(rawHref) ? rawHref : (toAbsolute(rawHref, base) ?? "");