MediaWiki:Common.js: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 86: | Line 86: | ||
(function () { | (function () { | ||
function stripHeaderLines(text) { | |||
return text | |||
// Remove standalone short lines that look like section headers | |||
.replace(/(?:^|\n)\s*[A-Z][A-Za-z0-9'’\- ,()]{0,50}\s*(?=\n)/g, '\n') | |||
// Clean up excess blank lines | |||
.replace(/\n{2,}/g, '\n') | |||
.trim(); | |||
} | |||
function cleanAdarisPopups() { | function cleanAdarisPopups() { | ||
document.querySelectorAll( | document.querySelectorAll( | ||
| Line 94: | Line 103: | ||
} | } | ||
el.textContent = stripHeaderLines(el.textContent); | |||
el.textContent = el.textContent | |||
el.dataset.adarisCleaned = '1'; | el.dataset.adarisCleaned = '1'; | ||
}); | }); | ||
| Line 102: | Line 109: | ||
const observer = new MutationObserver(function () { | const observer = new MutationObserver(function () { | ||
cleanAdarisPopups(); | cleanAdarisPopups(); | ||
setTimeout(cleanAdarisPopups, 100); | setTimeout(cleanAdarisPopups, 100); | ||
Revision as of 19:35, 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 stripHeaderLines(text) {
return text
// Remove standalone short lines that look like section headers
.replace(/(?:^|\n)\s*[A-Z][A-Za-z0-9'’\- ,()]{0,50}\s*(?=\n)/g, '\n')
// Clean up excess blank lines
.replace(/\n{2,}/g, '\n')
.trim();
}
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;
}
el.textContent = stripHeaderLines(el.textContent);
el.dataset.adarisCleaned = '1';
});
}
const observer = new MutationObserver(function () {
cleanAdarisPopups();
setTimeout(cleanAdarisPopups, 100);
setTimeout(cleanAdarisPopups, 300);
});
observer.observe(document.body, {
childList: true,
subtree: true,
characterData: true
});
cleanAdarisPopups();
})();