@codedoc/core
Version:
Create beautiful modern documentation websites.
58 lines • 2.4 kB
JavaScript
;
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