/** * HTML serializer — walks the live linkedom Document and generates clean HF HTML. * * Phase 3a: generates from the live DOM. The DOM IS the mutable state. * Phase 3b: GSAP script section will use the meriyah/offset-splice path once available. */ import type { ParsedDocument } from "./model.js"; /** * Serialize the live document back to HTML. * * If the original input was a fragment (wrapped=true), returns only body content. * If the original input had a full HTML shell (wrapped=false), returns the full document. */ export function serializeDocument(parsed: ParsedDocument): string { const doc = parsed.document; if (parsed.wrapped) { return (doc.body as HTMLBodyElement).innerHTML ?? ""; } return `\n${doc.documentElement.outerHTML}`; }