User:Rublov/leadcaps.js

/** * Highlights the bolded title in the lead if it does not match the * capitalization of the actual page title. * * Written by User:Rublov, January 2022 * * This script is developed on GitHub: https://github.com/rublovwiki/scripts */

$(function {  if (!isMainspace) {    return;  }

const titleElement = getTitleElement;

const leadTitle = (titleElement ? titleElement.textContent : "").trim; const articleTitle = getArticleTitle.trim;

// Ignore first letter, which may be lower-case in running text but otherwise // match the title. if (differsOnlyInCase(leadTitle.slice(1), articleTitle.slice(1))) { highlightElement(titleElement);

// Unhighlight the element when clicked. titleElement.addEventListener("click", => {      unHighlightElement(titleElement);    }); } });

function isMainspace { return mw.config.get("wgCanonicalNamespace") === ""; }

function getTitleElement { // Return the first bolded element in the first paragraph of the article's // text. Not fool-proof, but generally matches the bolded title in the lead. return document.querySelector("#mw-content-text p b"); }

function getArticleTitle { return mw.config.get("wgTitle"); }

function highlightElement(e) { e.style.color = "red"; }

function unHighlightElement(e) { e.style.color = "initial"; }

function differsOnlyInCase(s1, s2) { return s1 !== s2 && s1.toLowerCase === s2.toLowerCase; }