MediaWiki:NumerAlpha.js

De Wikincat
Ir para navegação Ir para pesquisar

Nota: Após publicar, você pode ter que limpar o "cache" do seu navegador para ver as alterações.

  • Firefox / Safari: Pressione Shift enquanto clica Recarregar, ou pressione Ctrl-F5 ou Ctrl-R (⌘-R no Mac)
  • Google Chrome: Pressione Ctrl-Shift-R (⌘-Shift-R no Mac)
  • Internet Explorer/Edge: PressioneCtrl enquanto clica Recarregar, ou Pressione Ctrl-F5
  • Opera: Pressione Ctrl-F5.
// from: https://stackoverflow.com/questions/9083037
// To be used in Template:CardCatalog and other places as well

/* jshint esversion: 10 */

function mainFunc() {
  function romanize(num) {
    if (isNaN(num)) return NaN;
    const digits = String(+num).split('');
    const 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}`;
  }
}

if (document.readyState === 'complete' || document.readyState !== 'loading') {
  mainFunc();
} else {
  document.addEventListener('DOMContentLoaded', mainFunc);
}