From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

/**

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

}