Handle registred trademark icon

This commit is contained in:
Blerim Sheqa 2024-04-12 13:41:27 +02:00
parent 0f7575d772
commit ca68261da1
2 changed files with 59 additions and 0 deletions

View File

@ -118,3 +118,8 @@ code, pre, kbd {
#icinga-summit a {
color: #e0009d;
}
.registered-sign {
vertical-align: top;
font-size: small;
}

View File

@ -0,0 +1,54 @@
function wrapRegisteredSign() {
const registeredSign = "®";
const registeredSignClass = "registered-sign";
const textNodes = document.evaluate(
"//*/text()",
document,
null,
XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
null
);
for (let i = 0; i < textNodes.snapshotLength; ++i) {
const textNode = textNodes.snapshotItem(i);
const parent = textNode.parentElement;
let registeredSignPos = textNode.textContent.indexOf(registeredSign);
if (
registeredSignPos === 0
&& parent.tagName.toLowerCase() === "span"
&& parent.getAttribute("class") === registeredSignClass
) {
continue;
}
let registeredSignPositions = [];
while (registeredSignPos !== -1) {
registeredSignPositions.push(registeredSignPos);
registeredSignPos = textNode.textContent.indexOf(registeredSign, registeredSignPos + 1);
}
if (!registeredSignPositions.length) {
continue;
}
const newContent = document.createDocumentFragment();
let start = 0;
registeredSignPositions.forEach(function (position) {
const spanNode = document.createElement("span");
spanNode.setAttribute("class", registeredSignClass);
spanNode.appendChild(document.createTextNode(registeredSign));
newContent.appendChild(document.createTextNode(textNode.textContent.substring(start, position)));
newContent.appendChild(spanNode);
start = position + 1;
})
newContent.appendChild(document.createTextNode(textNode.textContent.substring(start)));
parent.replaceChild(newContent, textNode);
}
}
document.addEventListener("DOMContentLoaded", wrapRegisteredSign);