UNPKG

@codedoc/core

Version:

Create beautiful modern documentation websites.

58 lines 2.4 kB
"use strict"; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.pageSpecificMeta = void 0; function overrideMeta(html, target, behavior, override) { var el$ = html.querySelector("meta[name=\"" + target + "\"]"); if (!el$) { el$ = html.createElement('meta'); el$.setAttribute('name', target); html.head.append(el$); } var content = el$.getAttribute('content') || ''; if (behavior === 'replace') content = override; else { if (target === 'keywords') content = __spreadArrays(content.split(',').map(function (_) { return _.trim(); }), override.split(',').map(function (_) { return _.trim(); })).join(', '); else content = [content.trim(), override.trim()].join(' '); } el$.setAttribute('content', content); } function addCanonical(html, content) { var el$ = html.createElement('link'); el$.setAttribute('rel', 'canonical'); el$.setAttribute('href', content); html.head.append(el$); } function addMetaWithProp(html, prop, content) { var el$ = html.createElement('meta'); el$.setAttribute('property', prop); el$.setAttribute('content', content); html.head.append(el$); } function pageSpecificMeta(html) { html.body.querySelectorAll('[data-meta-override]').forEach(function (override$) { var target = override$.getAttribute('data-meta-override'); var behavior = (override$.getAttribute('data-meta-override-behavior') || 'replace'); var content = override$.textContent || ''; if (target === 'canonical') addCanonical(html, content); else overrideMeta(html, target, behavior, content); }); html.body.querySelectorAll('[data-meta-override-property]').forEach(function (override$) { var prop = override$.getAttribute('data-meta-override-property') || ''; var content = override$.textContent || ''; addMetaWithProp(html, prop, content); }); } exports.pageSpecificMeta = pageSpecificMeta; //# sourceMappingURL=post.js.map