UNPKG

@codedoc/core

Version:

Create beautiful modern documentation websites.

50 lines 1.91 kB
function overrideMeta(html, target, behavior, override) { let el$ = html.querySelector(`meta[name="${target}"]`); if (!el$) { el$ = html.createElement('meta'); el$.setAttribute('name', target); html.head.append(el$); } let content = el$.getAttribute('content') || ''; if (behavior === 'replace') content = override; else { if (target === 'keywords') content = [ ...content.split(',').map(_ => _.trim()), ...override.split(',').map(_ => _.trim()) ].join(', '); else content = [content.trim(), override.trim()].join(' '); } el$.setAttribute('content', content); } function addCanonical(html, content) { const el$ = html.createElement('link'); el$.setAttribute('rel', 'canonical'); el$.setAttribute('href', content); html.head.append(el$); } function addMetaWithProp(html, prop, content) { const el$ = html.createElement('meta'); el$.setAttribute('property', prop); el$.setAttribute('content', content); html.head.append(el$); } export function pageSpecificMeta(html) { html.body.querySelectorAll('[data-meta-override]').forEach(override$ => { const target = override$.getAttribute('data-meta-override'); const behavior = (override$.getAttribute('data-meta-override-behavior') || 'replace'); const content = override$.textContent || ''; if (target === 'canonical') addCanonical(html, content); else overrideMeta(html, target, behavior, content); }); html.body.querySelectorAll('[data-meta-override-property]').forEach(override$ => { const prop = override$.getAttribute('data-meta-override-property') || ''; const content = override$.textContent || ''; addMetaWithProp(html, prop, content); }); } //# sourceMappingURL=post.js.map