chore: worker cleanup

This commit is contained in:
Cory Dransfeldt 2024-10-18 11:44:47 -07:00
parent 8b2648f23f
commit 3aadaeb741
No known key found for this signature in database
10 changed files with 464 additions and 425 deletions

View file

@ -0,0 +1,29 @@
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()
}