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(","); }