🏠 Home 

Add Sefaria Link to Wikisource

Adds a link to Sefaria on Hebrew Wikisource pages


Install this script?
// ==UserScript==
// @name         Add Sefaria Link to Wikisource
// @namespace    http://torahchats.com/
// @version      1.1
// @description  Adds a link to Sefaria on Hebrew Wikisource pages
// @author       Binjomin Szanto-Varnagy
// @license      MIT
// @match        https://he.wikisource.org/wiki/*
// @grant        none
// ==/UserScript==
(function() {
'use strict';
// Dictionary mapping Hebrew book names to Sefaria's English book names
const bookNameMap = {
"בראשית": "Genesis",
"שמות": "Exodus",
"ויקרא": "Leviticus",
"במדבר": "Numbers",
"דברים": "Deuteronomy",
"יהושע": "Joshua",
"שופטים": "Judges",
"שמואל א": "I_Samuel",
"שמואל ב": "II_Samuel",
"מלכים א": "I_Kings",
"מלכים ב": "II_Kings",
"ישעיהו": "Isaiah",
"ירמיהו": "Jeremiah",
"יחזקאל": "Ezekiel",
"הושע": "Hosea",
"יואל": "Joel",
"עמוס": "Amos",
"עובדיה": "Obadiah",
"יונה": "Jonah",
"מיכה": "Micah",
"נחום": "Nahum",
"חבקוק": "Habakkuk",
"צפניה": "Zephaniah",
"חגי": "Haggai",
"זכריה": "Zechariah",
"מלאכי": "Malachi",
"תהלים": "Psalms",
"משלי": "Proverbs",
"איוב": "Job",
"שיר השירים": "Song_of_Songs",
"רות": "Ruth",
"איכה": "Lamentations",
"קהלת": "Ecclesiastes",
"אסתר": "Esther",
"דניאל": "Daniel",
"עזרא": "Ezra",
"נחמיה": "Nehemiah",
"דברי הימים א": "I_Chronicles",
"דברי הימים ב": "II_Chronicles"
};
// Step 1: Extract the reference from the URL
const url = decodeURI(window.location.href);
const regex = /קטגוריה:([^_]+)_([^_]+)_([^_]+)/;
const match = url.match(regex);
if (match) {
const hebrewBook = match[1].replace(/_/g, " "); // Get Hebrew book name
const chapter = hebrewToNumber(match[2]); // Get chapter number
const verse = hebrewToNumber(match[3]); // Get verse number
// Step 2: Translate the Hebrew book name to English using the dictionary
const englishBook = bookNameMap[hebrewBook];
if (englishBook) {
// Step 3: Create the Sefaria URL
const sefariaUrl = `https://www.sefaria.org/${englishBook}.${chapter}.${verse}?lang=bi`;
// Step 4: Inject the link to Sefaria at the top of the Wikisource page
const sefariaLink = document.createElement('a');
sefariaLink.href = sefariaUrl;
sefariaLink.innerText = "View this chapter on Sefaria";
sefariaLink.style.display = 'block';
sefariaLink.style.margin = '10px';
sefariaLink.style.fontWeight = 'bold';
sefariaLink.style.color = 'blue';
// Step 5: Append the link to the top of the body
document.body.prepend(sefariaLink);
}
}
})();
function hebrewToNumber(hebrew) {
// Special cases for 15 (טו) and 16 (טז)
if (hebrew === "טו") return 15;
if (hebrew === "טז") return 16;
// Map of Hebrew letters to their corresponding numeric values
const gematriaMap = {
'א': 1, 'ב': 2, 'ג': 3, 'ד': 4, 'ה': 5, 'ו': 6, 'ז': 7, 'ח': 8, 'ט': 9,
'י': 10, 'כ': 20, 'ל': 30, 'מ': 40, 'נ': 50, 'ס': 60, 'ע': 70, 'פ': 80, 'צ': 90,
'ק': 100, 'ר': 200, 'ש': 300, 'ת': 400
};
// Convert the Hebrew string into a number
let number = 0;
for (let i = 0; i < hebrew.length; i++) {
const letter = hebrew[i];
if (gematriaMap[letter]) {
number += gematriaMap[letter];
} else {
console.warn(`Unknown Hebrew letter: ${letter}`);
}
}
return number;
}