Gebruiker:MakiBoy/Gadget-Jaartelling.js: verschil tussen versies

Uit Wikikids
Naar navigatie springen Naar zoeken springen
Regel 6: Regel 6:
 
function linkToArticle(title, label) {
 
function linkToArticle(title, label) {
 
if (!label) {
 
if (!label) {
return '<a href="/' + title + '">' + title + '</a>';
+
return '<a style="color: white;" href="/' + title + '">' + title + '</a>';
 
} else {
 
} else {
return '<a href="/' + title + '">' + label + '</a>';
+
return '<a style="color: white;" href="/' + title + '">' + label + '</a>';
 
}
 
}
 
}
 
}

Versie van 27 jan 2023 12:09

/**
 * Gebruiker:MakiBoy/Gadget-Jaartelling.js
 * Translated by [[User:MakiBoy]] from Wikipedia's [[Module:Kalender]]
*/

function linkToArticle(title, label) {
    if (!label) {
        return '<a style="color: white;" href="/' + title + '">' + title + '</a>';
    } else {
        return '<a style="color: white;" href="/' + title + '">' + label + '</a>';
    }
}

function duo(year, offset) {
    if (year > offset) {
        return (year - offset) + ' - ' + (year - offset + 1);
    } else if (year == offset) {
        return 1;
    }
}

function nonPositionalDigit(tab, year, div) {
    if (year < div) {
        return '';
    }

    var digit = Math.floor(year / div) % (tab.length + 1);
    return tab[digit - 1] || '';
}

function years(year) {
    var yearNum = parseInt(year);
    if (yearNum > 0) {
        return linkToArticle(yearNum - 1) + " – <b>" + linkToArticle(yearNum) + "</b> – " + linkToArticle(yearNum + 1);
    }
}

var roman4 = ['M', 'MM', 'MMM', 'MMMM'];
var roman3 = ['C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'];
var roman2 = ['X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'];
var roman1 = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];

function romanNumeral(year) {
    if (year > 0 && year < 5000) {
        return nonPositionalDigit(roman4, year, 1000) +
            nonPositionalDigit(roman3, year, 100) +
            nonPositionalDigit(roman2, year, 10) +
            nonPositionalDigit(roman1, year, 1);
    }
}

var cn10 = ['庚', '辛', '壬', '癸', '甲', '乙', '丙', '丁', '戊', '己'];
var cn12 = ['亥', '子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌'];

function chineseNumeral(year) {
    year = year + 2696;
    var year1 = year + ' - ' + (year + 1);
    var year2 = cn10[year % 10] + cn12[year % 12] + ' - ' + cn10[(year + 1) % 10] + cn12[(year + 1) % 12];
    return year1 + "<br />" + year2;
}

var ar5 = ['Օ', 'Ֆ'];
var ar4 = ['Ռ', 'Ս', 'Վ', 'Տ', 'Ր', 'Ց', 'Ւ', 'Փ', 'Ք'];
var ar3 = ['Ճ', 'Մ', 'Յ', 'Ն', 'Շ', 'Ո', 'Չ', 'Պ', 'Ջ'];
var ar2 = ['Ժ', 'Ի', 'Լ', 'Խ', 'Ծ', 'Կ', 'Հ', 'Ձ', 'Ղ'];
var ar1 = ['Ա', 'Բ', 'Գ', 'Դ', 'Ե', 'Զ', 'Է', 'Ը', 'Թ'];

function ak(year) {
    if (year > 0 && year < 30000) {
        return nonPositionalDigit(ar5, year, 10000) +
            nonPositionalDigit(ar4, year, 1000) +
            nonPositionalDigit(ar3, year, 100) +
            nonPositionalDigit(ar2, year, 10) +
            nonPositionalDigit(ar1, year, 1);
    }
}

function armenianNumeral(year) {
    var year1 = Math.floor((Math.floor(year * 0.25 - 0.25) - Math.floor(year * 0.01 - 0.01) + Math.floor(year * 0.0025 - 0.0025)) / 365 + year - 551.8958904);
    var year2 = Math.floor((Math.floor(year * 0.25) - Math.floor(year * 0.01) + Math.floor(year * 0.0025)) / 365 + year - 550.8986301);
    if (year1 > 0 && year1 != year2) {
        return year1 + ' - ' + year2 + "<br />ԹՎ " + ak(year1) + ' - ' + ak(year2);
    } else if (year1 > 0) {
        return year1 + " ԹՎ " + ak(year1);
    } else if (year1 == 0) {
        return year2 + " ԹՎ " + ak(year2);
    }
}

function ethiopianNumeral(year) {
    return duo(year, 8);
}

function hebrewNumeral(year) {
    return duo(year, -3760);
}

function indiNumeral(year) {
    return duo(year, 78);
}

function islamicNumeral(year) {
    var year1 = Math.floor(1.030684 * (year - 621.5643));
    var year2 = Math.floor(1.030684 * (year - 621.5643 + 1));

    if (year > 622) {
        return year1 + ' - ' + year2;
    } else if (year == 622) {
        return 1;
    }
}

if (mw.config.get('wgPageName').match(/^\d+$/) || mw.config.get('wgPageName') == 'Gebruiker:MakiBoy/Kladblok') {
    console.log('Gadget-Jaartelling is running');

    if (mw.config.get('wgPageName') == 'Gebruiker:MakiBoy/Kladblok') {
        var year = new Date().getFullYear();
    } else {
        var year = mw.config.get('wgPageName');
    }

    document.getElementById('Gadget-Jaartelling-year').innerHTML = year;

    var allIds = [
        { id: 'years', function: years },
        { id: 'romanNumeral', function: romanNumeral },
        { id: 'chineseNumeral', function: chineseNumeral },
        { id: 'armenianNumeral', function: armenianNumeral },
        { id: 'ethiopianNumeral', function: ethiopianNumeral },
        { id: 'hebrewNumeral', function: hebrewNumeral },
        { id: 'indiNumeral', function: indiNumeral },
        { id: 'islamicNumeral', function: islamicNumeral }
    ];

    for (var i = 0; i < allIds.length; i++) {
        var id = 'Gadget-Jaartelling-' + allIds[i].id;
        var element = document.getElementById(id);
        if (element) {
            var result = allIds[i].function(year);
            element.innerHTML = result;
        }
    }
}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:MakiBoy/Gadget-Jaartelling.js&oldid=763154"