MediaWiki:NumerAlpha.js: mudanças entre as edições

De Wikincat
Ir para navegação Ir para pesquisar
(Criou página com '// from: https://stackoverflow.com/questions/9083037/convert-a-number-into-a-roman-numeral-in-javascript // To be used in Template:CardCatalog and other places as well functi...')
(Sem diferença)

Edição das 11h28min de 1 de fevereiro de 2023

// from: https://stackoverflow.com/questions/9083037/convert-a-number-into-a-roman-numeral-in-javascript
// To be used in Template:CardCatalog and other places as well

function romanize(num) {
  if (isNaN(num)) return NaN;
  const digits = String(+num).split(""),
    key = [
      "",
      "C",
      "CC",
      "CCC",
      "CD",
      "D",
      "DC",
      "DCC",
      "DCCC",
      "CM",
      "",
      "X",
      "XX",
      "XXX",
      "XL",
      "L",
      "LX",
      "LXX",
      "LXXX",
      "XC",
      "",
      "I",
      "II",
      "III",
      "IV",
      "V",
      "VI",
      "VII",
      "VIII",
      "IX",
    ];
  let roman = "";
  let i = 3;
  while (i--) roman = (key[+digits.pop() + i * 10] || "") + roman;
  return Array(+digits.join("") + 1).join("M") + roman;
}

const incrementElemsNumeral = document.querySelectorAll(
  ".increment-numeralpha-numeral"
);

for (let [i, element] of incrementElemsNumeral.entries()) {
  element.innerHTML = `${++i}. ${element.innerHTML}`;
}

const incrementElemsRoman = document.querySelectorAll(
  ".increment-numeralpha-roman"
);

for (let [i, element] of incrementElemsRoman.entries()) {
  element.innerHTML = `${romanize(++i)}. ${element.innerHTML}`;
}