import { parseHTML } from 'linkedom' export const updateDynamicContent = (html, metadata, mediaHtml) => { const { document } = parseHTML(html) const titleTag = document.querySelector('title[data-dynamic="title"]') if (titleTag) titleTag['textContent'] = metadata['title'] const dynamicMetaSelectors = [ { selector: 'meta[data-dynamic="description"]', attribute: 'content', value: metadata['description'] }, { selector: 'meta[data-dynamic="og:title"]', attribute: 'content', value: metadata['og:title'] }, { selector: 'meta[data-dynamic="og:description"]', attribute: 'content', value: metadata['og:description'] }, { selector: 'meta[data-dynamic="og:image"]', attribute: 'content', value: metadata['og:image'] }, { selector: 'meta[data-dynamic="og:url"]', attribute: 'content', value: metadata['canonical'] }, ] dynamicMetaSelectors.forEach(({ selector, attribute, value }) => { const element = document.querySelector(selector) if (element) element.setAttribute(attribute, value) }) const canonicalLink = document.querySelector('link[rel="canonical"]') if (canonicalLink) canonicalLink.setAttribute('href', metadata['canonical']) const pageElement = document.querySelector('[data-dynamic="page"]') if (pageElement) pageElement.innerHTML = mediaHtml return document.toString() }