MediaWiki:NumerAlpha.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
// from: https://stackoverflow.com/questions/9083037 |
// from: https://stackoverflow.com/questions/9083037 |
||
// To be used in Template:CardCatalog and other places as well |
// To be used in Template:CardCatalog and other places as well |
||
/* jshint esversion: 10 */ |
|||
function mainFunc() { |
function mainFunc() { |
||
function romanize(num) { |
function romanize(num) { |
||
if (isNaN(num)) return NaN; |
if (isNaN(num)) return NaN; |
||
const digits = String(+num).split( |
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 roman = ''; |
||
let i = 3; |
let i = 3; |
||
while (i--) roman = (key[+digits.pop() + i * 10] || |
while (i--) roman = (key[+digits.pop() + i * 10] || '') + roman; |
||
return Array(+digits.join( |
return Array(+digits.join('') + 1).join('M') + roman; |
||
} |
} |
||
const incrementElemsNumeral = document.querySelectorAll( |
const incrementElemsNumeral = document.querySelectorAll( |
||
'.increment-numeralpha-numeral', |
|||
); |
); |
||
Linha 53: | Linha 55: | ||
const incrementElemsRoman = document.querySelectorAll( |
const incrementElemsRoman = document.querySelectorAll( |
||
'.increment-numeralpha-roman', |
|||
); |
); |
||
Linha 61: | Linha 63: | ||
} |
} |
||
if (document.readyState === |
if (document.readyState === 'complete' || document.readyState !== 'loading') { |
||
mainFunc(); |
mainFunc(); |
||
} else { |
} else { |
||
document.addEventListener( |
document.addEventListener('DOMContentLoaded', mainFunc); |
||
} |
} |
Edição das 14h04min de 18 de março de 2024
// 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);
}