MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 88: | Line 88: | ||
function cleanAdarisPopups() { | function cleanAdarisPopups() { | ||
document.querySelectorAll( | document.querySelectorAll( | ||
'.mwe-popups-extract, .mwe-popups-extract p, .mwe-popups .extract' | '.mwe-popups-extract, .mwe-popups-extract p, .mwe-popups .extract, .mwe-popups .mwe-popups-extract' | ||
).forEach(function (el) { | ).forEach(function (el) { | ||
if (el.dataset.adarisCleaned === '1') { | if (!el || el.dataset.adarisCleaned === '1') { | ||
return; | return; | ||
} | } | ||
el.textContent = el.textContent.replace(/^Introduction\s | // Remove leading generated section labels from popup extracts. | ||
el.textContent = el.textContent.replace(/^\s*Introduction\s*/i, ''); | |||
el.dataset.adarisCleaned = '1'; | el.dataset.adarisCleaned = '1'; | ||
}); | }); | ||
} | } | ||
const observer = new MutationObserver(cleanAdarisPopups); | const observer = new MutationObserver(function () { | ||
// Run immediately, then once more after Popups finishes filling text. | |||
cleanAdarisPopups(); | |||
setTimeout(cleanAdarisPopups, 100); | |||
setTimeout(cleanAdarisPopups, 300); | |||
}); | |||
observer.observe(document.body, { | observer.observe(document.body, { | ||
childList: true, | childList: true, | ||
subtree: true | subtree: true, | ||
characterData: true | |||
}); | }); | ||
cleanAdarisPopups(); | cleanAdarisPopups(); | ||
})(); | })(); | ||
Revision as of 19:30, 5 May 2026
// -------------------------
// Infobox cleanup
// -------------------------
$(document).ready(function() {
$('.infoboxTable th').each(function() {
if ($(this).text().trim() === "Image") {
$(this).text("");
}
});
});
// -------------------------
// Remove unwanted Introduction headers
// -------------------------
$(document).ready(function() {
$('h2').each(function() {
if ($(this).text().trim() === "Introduction") {
$(this).remove();
}
});
});
// -------------------------
// Remove first empty paragraph
// -------------------------
$(document).ready(function() {
$('p').first().each(function() {
if ($(this).html().trim() === "<br>") {
$(this).remove();
}
});
});
mw.loader.load('https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.js');
mw.loader.load('/maps/elemara/elemara-map.js');
mw.loader.using([], function () {
$(function () {
var container = document.getElementById("pixel-area-calculator");
if (!container) {
return;
}
container.innerHTML =
'<div class="pixel-area-tool">' +
'<h3>Pixel to Square Miles Calculator</h3>' +
'<label>Width in pixels:' +
'<input id="pixel-width" type="number" min="0" step="any" placeholder="Width">' +
'</label>' +
'<label>Height in pixels:' +
'<input id="pixel-height" type="number" min="0" step="any" placeholder="Height">' +
'</label>' +
'<button id="pixel-area-button" type="button">Calculate</button>' +
'<div id="pixel-area-result"></div>' +
'</div>';
document.getElementById("pixel-area-button").addEventListener("click", function () {
var widthPixels = parseFloat(document.getElementById("pixel-width").value);
var heightPixels = parseFloat(document.getElementById("pixel-height").value);
var result = document.getElementById("pixel-area-result");
if (isNaN(widthPixels) || isNaN(heightPixels)) {
result.textContent = "Please enter both pixel values.";
return;
}
var widthMiles = (widthPixels / 1000) * 50;
var heightMiles = (heightPixels / 1000) * 50;
var squareMiles = widthMiles * heightMiles;
result.innerHTML =
"<strong>" + widthMiles.toLocaleString(undefined, { maximumFractionDigits: 0 }) + " miles</strong>" +
" × " +
"<strong>" + heightMiles.toLocaleString(undefined, { maximumFractionDigits: 0 }) + " miles</strong>" +
" = " +
"<strong>" + squareMiles.toLocaleString(undefined, { maximumFractionDigits: 0 }) + " mi²</strong>";
});
});
});
(function () {
function cleanAdarisPopups() {
document.querySelectorAll(
'.mwe-popups-extract, .mwe-popups-extract p, .mwe-popups .extract, .mwe-popups .mwe-popups-extract'
).forEach(function (el) {
if (!el || el.dataset.adarisCleaned === '1') {
return;
}
// Remove leading generated section labels from popup extracts.
el.textContent = el.textContent.replace(/^\s*Introduction\s*/i, '');
el.dataset.adarisCleaned = '1';
});
}
const observer = new MutationObserver(function () {
// Run immediately, then once more after Popups finishes filling text.
cleanAdarisPopups();
setTimeout(cleanAdarisPopups, 100);
setTimeout(cleanAdarisPopups, 300);
});
observer.observe(document.body, {
childList: true,
subtree: true,
characterData: true
});
cleanAdarisPopups();
})();