User:Rublov/refspace.js
/**
* Highlights violations of MOS:REFSPACE in red.
*
* Written by User:Rublov, June 2021
*
* This script is developed on GitHub: https://github.com/rublovwiki/scripts
*/
$(function () {
if (mw.config.get("wgAction") === "view") {
for (const ref of document.querySelectorAll(
".reference, .Template-Fact, .Inline-Template",
)) {
const previous = ref.previousSibling;
const next = ref.nextSibling;
if (
(!!previous && isBeforeWrong(previous.textContent)) ||
(!!next && next.tagName !== "STYLE" && isAfterWrong(next.textContent))
) {
const a = ref.querySelector("a");
a.style.color = "red";
}
}
}
});
function isBeforeWrong(text) {
if (!text) {
return false;
}
return (text.endsWith(" ") && !text.endsWith(": ")) || text.endsWith("\n");
}
function isAfterWrong(text) {
if (!text) {
return false;
}
return text.startsWith(".") || text.startsWith(";") || text.startsWith(",");
}