אונטערשייד צווישן ווערסיעס פון "באַניצער:תנא קמא/tanachLinks.js"

ק
הגהה
אין תקציר עריכה
ק (הגהה)
 
(28 מיטלסטע ווערסיעס פון 2 באַניצער נישט געוויזן.)
שורה 2: שורה 2:
     $(document).ready(function () {
     $(document).ready(function () {
         // Define favicon URLs
         // Define favicon URLs
         var sefariaFavicon = 'https://www.sefaria.org/static/icons/favicon.ico';
         var sefariaFavicon = 'https://www.sefaria.org/static/icons/library/favicon.svg';
        var alHaTorahFavicon = 'https://mg.alhatorah.org/favicon.ico';
        var wikiSourceFavicon = 'https://he.wikisource.org/static/favicon/wikisource.ico';
 
        // Helper: Convert Hebrew numeral to integer
        function hebrewNumeralToInt(hebrew) {
            const gematria = {
                'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5,
                'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9,
                'י': 10, 'כ': 20, 'ל': 30, 'מ': 40, 'נ': 50,
                'ס': 60, 'ע': 70, 'פ': 80, 'צ': 90,
                'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400
            };
 
            // Remove gershayim/geresh
            hebrew = hebrew.replace(/["״׳']/g, '');
 
            let total = 0;
            for (const letter of hebrew) {
                total += gematria[letter] || 0;
            }
            return total;
        }
 
        // Define the mapping between Hebrew book names and their English and AlHaTorah equivalents
        const bookNameMapping = {
            'בראשית': { english: 'Genesis', alHaTorah: 'Bereshit' },
            'שמות': { english: 'Exodus', alHaTorah: 'Shemot' },
            'ויקרא': { english: 'Leviticus', alHaTorah: 'Vayikra' },
            'במדבר': { english: 'Numbers', alHaTorah: 'Bemidbar' },
            'דברים': { english: 'Deuteronomy', alHaTorah: 'Devarim' },
            'יהושע': { english: 'Joshua', alHaTorah: 'Yehoshua' },
            'שופטים': { english: 'Judges', alHaTorah: 'Shofetim' },
            'שמואל א': { english: 'I_Samuel', alHaTorah: 'Shemuel_I' },
            'שמואל ב': { english: 'II_Samuel', alHaTorah: 'Shemuel_II' },
            'מלכים א': { english: 'I_Kings', alHaTorah: 'Melakhim_I' },
            'מלכים ב': { english: 'II_Kings', alHaTorah: 'Melakhim_II' },
            'ישעיהו': { english: 'Isaiah', alHaTorah: 'Yeshayahu' },
            'ירמיהו': { english: 'Jeremiah', alHaTorah: 'Yirmeyahu' },
            'יחזקאל': { english: 'Ezekiel', alHaTorah: 'Yechezkel' },
            'הושע': { english: 'Hosea', alHaTorah: 'Hoshea' },
            'יואל': { english: 'Joel', alHaTorah: 'Yoel' },
            'עמוס': { english: 'Amos', alHaTorah: 'Amos' },
            'עובדיה': { english: 'Obadiah', alHaTorah: 'Ovadyah' },
            'יונה': { english: 'Jonah', alHaTorah: 'Yonah' },
            'מיכה': { english: 'Micah', alHaTorah: 'Mikhah' },
            'נחום': { english: 'Nahum', alHaTorah: 'Nachum' },
            'חבקוק': { english: 'Habakkuk', alHaTorah: 'Chavakkuk' },
            'צפניה': { english: 'Zephaniah', alHaTorah: 'Zephanyah' },
            'חגי': { english: 'Haggai', alHaTorah: 'Chaggai' },
            'זכריה': { english: 'Zechariah', alHaTorah: 'Zekharyah' },
            'מלאכי': { english: 'Malachi', alHaTorah: 'Malakhi' },
            'תהלים': { english: 'Psalms', alHaTorah: 'Tehillim' },
            'משלי': { english: 'Proverbs', alHaTorah: 'Mishlei' },
            'איוב': { english: 'Job', alHaTorah: 'Iyyov' },
            'שיר השירים': { english: 'Song_of_Songs', alHaTorah: 'Shir_HaShirim' },
            'רות': { english: 'Ruth', alHaTorah: 'Rut' },
            'איכה': { english: 'Lamentations', alHaTorah: 'Eikhah' },
            'קהלת': { english: 'Ecclesiastes', alHaTorah: 'Kohelet' },
            'אסתר': { english: 'Esther', alHaTorah: 'Esther' },
            'דניאל': { english: 'Daniel', alHaTorah: 'Daniel' },
            'עזרא': { english: 'Ezra', alHaTorah: 'Ezra' },
            'נחמיה': { english: 'Nehemiah', alHaTorah: 'Nechemyah' },
            'דברי הימים א': { english: 'I_Chronicles', alHaTorah: 'Divrei HaYamim_I' },
            'דברי הימים ב': { english: 'II_Chronicles', alHaTorah: 'Divrei HaYamim_II' }
        };


         // Iterate over each Tanakh citation link
         // Iterate over each Tanakh citation link
שורה 8: שורה 73:
             var $link = $(this);
             var $link = $(this);
             var sefer = $link.data('sefer');
             var sefer = $link.data('sefer');
             var perek = $link.data('perek');
             var perekRaw = $link.data('perek');
             var pasuk = $link.data('pasuk');
             var pasukRaw = $link.attr('data-pasuk');
 
            // Ensure the necessary data exists
            if (!sefer || !perekRaw) return;
 
            var seferNames = bookNameMapping[sefer];
            if (!seferNames) return;
 
            var perek = hebrewNumeralToInt(perekRaw);
            var pasuk = (pasukRaw && pasukRaw.trim() !== '') ? hebrewNumeralToInt(pasukRaw) : null;


             // Construct Sefaria URL
             // Construct Sefaria URL
             var sefariaUrl = 'https://www.sefaria.org/' + encodeURIComponent(sefer) + '.' + encodeURIComponent(perek) + '.' + encodeURIComponent(pasuk);
             var sefariaUrl = 'https://www.sefaria.org/' + encodeURIComponent(seferNames.english) + '.' + perek;
            if (pasuk !== null) {
                sefariaUrl += '.' + pasuk;
            }
 
            // Construct AlHaTorah URL
            var alHaTorahUrl = 'https://mg.alhatorah.org/Full/' + encodeURIComponent(seferNames.alHaTorah) + '/' + perek;
            if (pasuk !== null) {
                alHaTorahUrl += '.' + pasuk;
            }
 
            // Construct Wikisource URL
            var wikiSourceUrl = 'https://he.wikisource.org/wiki/' + encodeURIComponent(sefer + '_' + perekRaw);
            if (pasukRaw && pasukRaw.trim() !== '') {
                wikiSourceUrl += '_' + pasukRaw;
            }
 
            // Create container span for the icons
            var $container = $('<span class="tanach-icons" style="white-space: nowrap; margin-right: 4px;"></span>');


             // Create the Sefaria icon link
             // Create and append the Sefaria icon
             var sefariaIcon = $('<a>')
             var sefariaIcon = $('<a>')
                 .attr('href', sefariaUrl)
                 .attr('href', sefariaUrl)
שורה 20: שורה 112:
                 .attr('title', 'עפן אין ספריא')
                 .attr('title', 'עפן אין ספריא')
                 .html('<img src="' + sefariaFavicon + '" alt="Sefaria" style="width:12px; height:12px; vertical-align:middle; margin-left: 3px;">');
                 .html('<img src="' + sefariaFavicon + '" alt="Sefaria" style="width:12px; height:12px; vertical-align:middle; margin-left: 3px;">');
            $container.append(sefariaIcon);


             // Append the Sefaria icon next to the link
             // Create and append the AlHaTorah icon
             $link.after(sefariaIcon);
             var alHaTorahIcon = $('<a>')
        });
                .attr('href', alHaTorahUrl)
    });
                .attr('target', '_blank')
});
                .attr('title', 'עפן אין על התורה')
                .html('<img src="' + alHaTorahFavicon + '" alt="AlHaTorah" style="width:12px; height:12px; vertical-align:middle; margin-left: 3px;">');
            $container.append(alHaTorahIcon);


mw.loader.using(['mediawiki.util', 'jquery'], function () {
            // Create and append the Wikisource icon
    $(document).ready(function () {
            var wikiSourceIcon = $('<a>')
        // Define the mapping between Sefaria and AlHaTorah book names
                .attr('href', wikiSourceUrl)
        const bookNameMapping = {
                .attr('target', '_blank')
    'Genesis': 'Bereshit',
                .attr('title', 'עפן אין ויקיטקסט')
    'Exodus': 'Shemot',
                .html('<img src="' + wikiSourceFavicon + '" alt="Wikisource" style="width:12px; height:12px; vertical-align:middle; margin-left: 3px;">');
    'Leviticus': 'Vayikra',
             $container.append(wikiSourceIcon);
    'Numbers': 'Bemidbar',
    'Deuteronomy': 'Devarim',
    'Joshua': 'Yehoshua',
    'Judges': 'Shofetim',
    'Samuel I': 'Shemuel I',
    'Samuel II': 'Shemuel II',
    'Kings I': 'Melakhim I',
    'Kings II': 'Melakhim II',
    'Isaiah': 'Yeshayahu',
    'Jeremiah': 'Yirmeyahu',
    'Ezekiel': 'Yechezkel',
    'Hosea': 'Hoshea',
    'Joel': 'Yoel',
    'Amos': 'Amos',
    'Obadiah': 'Ovadyah',
    'Jonah': 'Yonah',
    'Micah': 'Mikhah',
    'Nahum': 'Nachum',
    'Habakkuk': 'Chavakkuk',
    'Zephaniah': 'Zephanyah',
    'Haggai': 'Chaggai',
    'Zechariah': 'Zekharyah',
    'Malachi': 'Malakhi',
    'Psalms': 'Tehillim',
    'Proverbs': 'Mishlei',
    'Job': 'Iyyov',
    'Song of Songs': 'Shir HaShirim',
    'Ruth': 'Rut',
    'Lamentations': 'Eikhah',
    'Ecclesiastes': 'Kohelet',
    'Esther': 'Esther',
    'Daniel': 'Daniel',
    'Ezra': 'Ezra',
    'Nehemiah': 'Nechemyah',
    'Chronicles I': 'Divrei HaYamim I',
    'Chronicles II': 'Divrei HaYamim II'
        };
 
        // Iterate over each Tanakh citation link
        $('.tanach-citation').each(function () {
            var $link = $(this);
            var sefer = $link.data('sefer');
            var perek = $link.data('perek');
             var pasuk = $link.data('pasuk');


             // Map Sefaria book name to AlHaTorah's naming convention
             // Insert the container before the original link
            var alHaTorahSefer = bookNameMapping[sefer];
            $link.before($container);
            if (alHaTorahSefer) {
                // Construct AlHaTorah URL
                var alHaTorahUrl = 'https://mg.alhatorah.org/Full/' + encodeURIComponent(alHaTorahSefer) +
                    '/' + encodeURIComponent(perek) +
                    '.' + encodeURIComponent(pasuk);
 
                // Create the AlHaTorah icon link
                var alHaTorahIcon = $('<a>')
                    .attr('href', alHaTorahUrl)
                    .attr('target', '_blank')
                    .attr('title', 'View on AlHaTorah')
                    .html('<img src="https://mg.alhatorah.org/favicon.ico" alt="AlHaTorah" style="width:12px; height:12px; vertical-align:middle; margin-left: 3px;">');
 
                // Append the icon next to the link
                $link.after(alHaTorahIcon);
            }
         });
         });
     });
     });
});
});