data = {
refresh;
for (const element of [...document.getElementsByClassName(classname)]) {
element.remove();
}
const links = [];
for (const element of [...document.getElementsByTagName("A")]) {
let url = element.href;
if (element.innerText === url || !url || url.startsWith(current_location + '#'))
continue;
if (element.classList.contains("reference"))
continue;
let skip = false;
for (let parent = element; parent != null; parent = parent.parentElement) {
if (parent.classList.contains("observablehq--inspect")) {
skip = true;
break;
}
}
if (skip)
continue;
url = decodeURIComponent(url);
const displayUrl = url.replace(/^https?\:\/\/|\/$/, ""),
existingLinkIndex = links.findIndex(r => r.displayUrl === displayUrl);
const referenceNumber = existingLinkIndex === -1
? links.push({ displayUrl, references: [], title: element.innerText, url })
: existingLinkIndex + 1;
let id = undefined;
for (let parent = element; parent != null; parent = parent.parentElement) {
if (parent.id !== '') {
id = parent.id;
break;
}
}
links[referenceNumber - 1].references.push({ text: element.innerText, id });
const span = document.createElement('SPAN');
span.className = classname;
span.title = element.innerText;
span.textContent = referenceNumber.toString().replace(/\d/g, i => superscript[i]);
element.insertAdjacentElement('afterend', span);
}
return links;
}