├── README.md ├── code └── utils.ts └── data ├── rambam.json ├── shas.tsv └── zmanim-coordinates-for-jewish-cities.tsv /README.md: -------------------------------------------------------------------------------- 1 | Tech4Torah 2 | ========== 3 | 4 | **Tech4Torah** is an open GitHub repository that aims to provide resources for Torah-related software projects. It includes code snippets for common tasks (such as converting a number to a Gematria) and datasets such as the Masechtos in Shas. Feel free to browse around! 5 | 6 | Contributing 7 | ------------ 8 | 9 | We welcome contributions from the community. If you have code or data related to Torah software projects, feel free to share it with us. You can submit your contributions by creating a pull request. 10 | 11 | Reporting Issues 12 | ---------------- 13 | 14 | If you encounter any issues or have suggestions for improvement, please report them using the standard GitHub issue tracking system. 15 | 16 | License 17 | ------- 18 | 19 | This repository is open-source and released under the MIT License. However, we would appreciate a link in your project to this repo, in order to spread the word about our project. Thanks! 20 | -------------------------------------------------------------------------------- /code/utils.ts: -------------------------------------------------------------------------------- 1 | // numberToGematria(716) === "תשיז" 2 | // numberToGematria(285) === "ערה" (one of a few traditional exceptions, to avoid unpleasant words) 3 | function numberToGematria(num: number) { 4 | const inner = (x: number) => 5 | x > 400 ? "ת" + inner(x - 400) : 6 | x >= 100 ? " קרשת"[Math.trunc(x / 100)] + inner(x % 100) : 7 | x === 15 ? "טו" : 8 | x === 16 ? "טז" : 9 | x >= 10 ? " יכלמנסעפצ"[Math.trunc(x / 10)] + inner(x % 10) : 10 | !x ? "" : 11 | " אבגדהוזחט"[x] 12 | return num === 270 ? "ער" : num === 272 ? "ערב" : num === 275 ? "ערה" : inner(num) 13 | } 14 | 15 | // Returns perek & mishna numbers for a given mishna index. 16 | // Example: mishnaByIndex(7, [7, 5]) === [0, 7] === פרק א משנה ז 17 | // Example: mishnaByIndex(8, [7, 5]) === [1, 0] === פרק ב משנה א 18 | // If the index is out of bounds, returns null. 19 | function mishnaByIndex(zeroBasedInd: number, perekLengths: number[], _carry = 0): [number, number] | null { 20 | return zeroBasedInd < perekLengths[0] ? [_carry, zeroBasedInd] : 21 | perekLengths.length <= 1 ? null : 22 | mishnaByIndex(zeroBasedInd - perekLengths[0], perekLengths.slice(1), _carry + 1) 23 | } 24 | 25 | // Simple gematria calculator 26 | const gematriaMap = { 27 | 'א': 1, 28 | 'ב': 2, 29 | 'ג': 3, 30 | 'ד': 4, 31 | 'ה': 5, 32 | 'ו': 6, 33 | 'ז': 7, 34 | 'ח': 8, 35 | 'ט': 9, 36 | 'י': 10, 37 | 'כ': 20, 38 | 'ך': 20, 39 | 'ל': 30, 40 | 'מ': 40, 41 | 'ם': 40, 42 | 'נ': 50, 43 | 'ן': 50, 44 | 'ס': 60, 45 | 'ע': 70, 46 | 'פ': 80, 47 | 'ף': 80, 48 | 'צ': 90, 49 | 'ץ': 90, 50 | 'ק': 100, 51 | 'ר': 200, 52 | 'ש': 300, 53 | 'ת': 400, 54 | } 55 | function gematria(str: string) { 56 | return str.split('').reduce((acc, char) => acc + (gematriaMap[char] || 0), 0) 57 | } -------------------------------------------------------------------------------- /data/rambam.json: -------------------------------------------------------------------------------- 1 | { 2 | "Sefer Madda": { 3 | "Yesodei haTorah": 10, 4 | "De'ot": 7, 5 | "Talmud Torah": 7, 6 | "Avodat Kochavim": 12, 7 | "Teshuvah": 10 8 | }, 9 | "Sefer Ahavah": { 10 | "Kri'at Shema": 4, 11 | "Tefilah and Birkat Kohanim": 15, 12 | "Tefillin, Mezuzah and Sefer Torah": 10, 13 | "Tzitzit": 3, 14 | "Berachot": 11, 15 | "Milah": 3, 16 | "Order of Prayers": 3 // not perakim 17 | }, 18 | "Sefer Zemanim": { 19 | "Shabbat": 30, 20 | "Eruvin": 8, 21 | "Shevitat Asor": 3, 22 | "Shevitat Yom Tov": 8, 23 | "Chametz U'Matzah": 9, 24 | "Shofar, Sukkah, vLulav": 8, 25 | "Shekalim": 4, 26 | "Kiddush HaChodesh": 19, 27 | "Ta'aniyot": 5, 28 | "Megillah vChanukah": 4 29 | }, 30 | "Sefer Nashim": { 31 | "Ishut": 25, 32 | "Gerushin": 13, 33 | "Yibbum vChalitzah": 8, 34 | "Naarah Betulah": 3, 35 | "Sotah": 4 36 | }, 37 | "Sefer Kedushah": { 38 | "Issurei Biah": 22, 39 | "Ma'achalot Assurot": 17, 40 | "Shechitah": 14 41 | }, 42 | "Sefer Hafla'ah": { 43 | "Shvuot": 12, 44 | "Nedarim": 13, 45 | "Nezirut": 10, 46 | "Arachim Vacharamim": 8 47 | }, 48 | "Sefer Zeraim": { 49 | "Kilaayim": 10, 50 | "Matnot Aniyim": 10, 51 | "Terumot": 15, 52 | "Maaser": 14, 53 | "Maaser Sheini": 11, 54 | "Bikkurim": 12, 55 | "Shemita": 13 56 | }, 57 | "Sefer Avodah": { 58 | "Beit Habechirah": 8, 59 | "Klei Hamikdash": 10, 60 | "Biat Hamikdash": 9, 61 | "Issurei Mizbeiach": 7, 62 | "Maaseh Hakorbanot": 19, 63 | "Temidin uMusafim": 10, 64 | "Pesulei Hamukdashim": 19, 65 | "Avodat Yom haKippurim": 5, 66 | "Me'ilah": 8 67 | }, 68 | "Sefer Korbanot": { 69 | "Korban Pesach": 10, 70 | "Chagigah": 3, 71 | "Bechorot": 8, 72 | "Shegagot": 15, 73 | "Mechussarey Kapparah": 5, 74 | "Temurah": 4 75 | }, 76 | "Sefer Taharah": { 77 | "Tum'at Met": 25, 78 | "Parah Adumah": 15, 79 | "Tum'at Tsara'at": 16, 80 | "Metamme'ey Mishkav uMoshav": 13, 81 | "She'ar Avot haTum'ah": 20, 82 | "Tum'at Okhalin": 16, 83 | "Kelim": 28, 84 | "Mikvaot": 11 85 | }, 86 | "Sefer Nezikin": { 87 | "Hilchot Nizkei Mamon": 14, 88 | "Genevah": 9, 89 | "Gezelah va'Avedah": 18, 90 | "Chovel uMazzik": 8, 91 | "Rotzeach uShmirat Nefesh": 13 92 | }, 93 | "Sefer Kinyan": { 94 | "Mechirah": 30, 95 | "Zechiyah uMattanah": 12, 96 | "Shechenim": 14, 97 | "Sheluchin veShuttafin": 10, 98 | "Avadim": 9 99 | }, 100 | "Sefer Mishpatim": { 101 | "Sechirut": 13, 102 | "She'elah uFikkadon": 8, 103 | "Malveh veLoveh": 27, 104 | "To'en veNit'an": 16, 105 | "Nachalot": 11 106 | }, 107 | "Sefer Shoftim": { 108 | "Sanhedrin veha'Onashin haMesurin lahem": 26, 109 | "Edut": 22, 110 | "Mamrim": 7, 111 | "Avel": 14, 112 | "Melachim uMilchamot": 12 113 | } 114 | } -------------------------------------------------------------------------------- /data/shas.tsv: -------------------------------------------------------------------------------- 1 | Seder - Hebrew Seder - Artscroll-Style Transliteration Seder - Sefaradit Name - Hebrew Name - Artscroll-Style Transliteration Name - Sefaradit Perakim Mishnayos Mishnayos Per Perek Dapim - Bavli (based on KosherJava) Dapim learned in Daf Yomi cycle - based on KosherJava -- includes Yerushalmi Shekalim and Mishnayos Middos and Kinim Name - KosherJava Notes Numbering Dapim - Yerushalmi (based on KosherJava) Dapim - Yerushalmi -- (according to https://en.wikipedia.org/wiki/List_of_Talmudic_tractates which uses Oz Vehadar) 2 | זרעים Zera'im Zera'im ברכות Berachos Berakhot 9 57 5_8_6_7_5_8_5_8_5 63 63 Berachos 2a-64a 68 94 3 | זרעים Zera'im Zera'im פאה Pe'ah Pe'ah 8 69 6_8_8_11_8_11_8_9 0 0 37 73 4 | זרעים Zera'im Zera'im דמאי Demai Demai 7 53 4_5_6_7_11_12_8 0 0 34 77 5 | זרעים Zera'im Zera'im כלאים Kil'ayim Kil'ayim 9 77 9_11_7_9_8_9_8_6_10 0 0 44 84 6 | זרעים Zera'im Zera'im שביעית Shevi'is Shevi'it 10 89 8_10_10_10_9_6_7_11_9_9 0 0 31 87 7 | זרעים Zera'im Zera'im תרומות Terumos Terumot 11 101 10_6_9_13_9_6_7_12_7_12_10 0 0 59 107 8 | זרעים Zera'im Zera'im מעשרות Ma'aseros Ma'aserot 5 40 8_8_10_6_8 0 0 26 46 9 | זרעים Zera'im Zera'im מעשר שני Ma'aser Sheini Ma'aser Sheni 5 57 7_10_13_12_15 0 0 33 59 10 | זרעים Zera'im Zera'im חלה Challah Hallah 4 38 9_8_10_11 0 0 28 49 11 | זרעים Zera'im Zera'im ערלה Orlah Orlah 3 35 9_17_9 0 0 20 42 12 | זרעים Zera'im Zera'im ביכורים Bikurim Bikurim 4 39 11_11_12_5 0 0 13 26 13 | מועד Mo'ed Mo'ed שבת Shabbos Shabbat 24 139 11_7_6_2_4_10_4_7_7_6_6_6_7_4_3_8_8_3_6_5_3_6_5_5 156 156 Shabbos 2a-157b 92 113 14 | מועד Mo'ed Mo'ed עירובין Eruvin Eruvin 10 96 10_6_9_11_9_10_11_11_4_15 104 104 Eruvin 2a-105a 65 71 15 | מועד Mo'ed Mo'ed פסחים Pesachim Pesahim 10 89 7_8_8_9_10_6_13_8_11_9 120 120 Pesachim 2a-121b 71 86 16 | מועד Mo'ed Mo'ed שקלים Shekalim Shekalim 8 52 7_5_4_9_6_6_7_8 0 21 Shekalim Note: learned in bavli daf yomi cycle. Numbering is in vilna. Note: in old cycles it was based on a different edition that had 9 pages less, see https://github.com/KosherJava/zmanim/blob/master/src/main/java/com/kosherjava/zmanim/hebrewcalendar/YomiCalculator.java 2a-22b 33 21 17 | מועד Mo'ed Mo'ed יומא Yoma Yoma 8 61 8_7_11_6_7_8_5_9 87 87 Yoma 2a-88a 42 57 18 | מועד Mo'ed Mo'ed סוכה Succah Succah 5 53 11_9_15_10_8 55 55 Sukkah 2a-56b 26 33 19 | מועד Mo'ed Mo'ed ביצה Beitzah Beitzah 5 42 10_10_8_7_7 39 39 Beitzah 2a-40b 22 49 20 | מועד Mo'ed Mo'ed ראש השנה Rosh HaShanah Rosh HaShanah 4 35 9_9_8_9 34 34 Rosh Hashana 2a-35a 22 27 21 | מועד Mo'ed Mo'ed תענית Ta'anis Ta'anit 4 34 7_10_9_8 30 30 Taanis 2a-31a 26 31 22 | מועד Mo'ed Mo'ed מגילה Megillah Megillah 4 33 11_6_6_10 31 31 Megillah 2a-32a 34 41 23 | מועד Mo'ed Mo'ed מועד קטן Mo'ed Katan Mo'ed Katan 3 24 10_5_9 28 28 Moed Katan 2a-29a 19 23 24 | מועד Mo'ed Mo'ed חגיגה Chagigah Hagigah 3 23 8_7_8 26 26 Chagigah 2a-27a 22 28 25 | נשים Nashim Nashim יבמות Yevamos Yevamot 16 128 4_10_10_13_6_6_6_6_6_9_7_6_13_9_10_7 121 121 Yevamos 2a-122b 85 88 26 | נשים Nashim Nashim כתובות Kesubos Ketubot 13 111 10_10_9_12_9_7_10_8_9_6_6_4_11 111 111 Kesubos 2a-112b 72 77 27 | נשים Nashim Nashim נדרים Nedarim Nedarim 11 90 4_5_11_8_6_10_9_7_10_8_12 90 90 Nedarim 2a-91b 40 42 28 | נשים Nashim Nashim נזיר Nazir Nazir 9 60 7_10_7_7_7_11_4_2_5 65 65 Nazir 2a-66b 47 53 29 | נשים Nashim Nashim סוטה Sotah Sotah 9 67 9_6_8_5_5_4_8_7_15 48 48 Sotah 2a-49b 47 52 30 | נשים Nashim Nashim גיטין Gittin Gittin 9 75 6_7_8_9_9_7_9_10_10 89 89 Gitin 2a-90b 54 53 31 | נשים Nashim Nashim קידושין Kiddushin Kiddushin 4 47 10_10_13_14 81 81 Kiddushin 2a-82b 48 53 32 | נזיקין Nezikin Nezikin בבא קמא Bava Kamma Bava Kamma 10 79 4_6_11_9_7_6_7_7_12_10 118 118 Bava Kamma 2a-119b 44 40 33 | נזיקין Nezikin Nezikin בבא מציעא Bava Metzia Bava Metzia 10 101 8_11_12_12_11_8_11_9_13_6 118 118 Bava Metzia 2a-119a 37 35 34 | נזיקין Nezikin Nezikin בבא בתרא Bava Basra Bava Batra 10 86 6_14_8_9_11_8_4_8_10_8 175 175 Bava Basra 2a-176b 34 39 35 | נזיקין Nezikin Nezikin סנהדרין Sanhedrin Sanhedrin 11 71 6_5_8_5_5_6_11_7_6_6_6 112 112 Sanhedrin 2a-113b 57 75 36 | נזיקין Nezikin Nezikin מכות Makkos Makkot 3 34 10_8_16 23 23 Makkos 2a-24b 9 11 37 | נזיקין Nezikin Nezikin שבועות Shevu'os Shevu'ot 8 62 7_5_11_13_5_7_8_6 48 48 Shevuos 2a-49b 44 49 38 | נזיקין Nezikin Nezikin עדיות Eduyos Eduyot 8 74 14_10_12_12_7_3_9_7 0 0 0 39 | נזיקין Nezikin Nezikin עבודה זרה Avoda Zara Avoda Zara 5 50 9_7_10_12_12 75 75 Avodah Zarah 2a-76b 37 34 40 | נזיקין Nezikin Nezikin אבות Avos Avot 6 108 18_16_18_22_23_11 0 0 0 41 | נזיקין Nezikin Nezikin הוריות Horayos Horayot 3 20 5_7_8 13 13 Horiyos 2a-14a 19 18 42 | קדשים Kodshim Kodashim זבחים Zevachim Zevahim 14 101 4_5_6_6_8_7_6_12_7_8_8_6_8_10 119 119 Zevachim 2a-120b 0 43 | קדשים Kodshim Kodashim מנחות Menachos Menahot 13 93 4_5_7_5_9_7_6_7_9_9_9_5_11 109 109 Menachos 2a-110a 0 44 | קדשים Kodshim Kodashim חולין Chulin Chulin 12 74 7_10_7_7_5_7_6_6_8_4_2_5 141 141 Chullin 2a-142a 0 45 | קדשים Kodshim Kodashim בכורות Bechoros Bekhorot 9 73 7_9_4_10_6_12_7_10_8 60 60 Bechoros 2a-61a 0 46 | קדשים Kodshim Kodashim ערכין Arachin Arachin 9 50 4_6_5_4_6_5_5_7_8 33 33 Arachin 2a-34a 0 47 | קדשים Kodshim Kodashim תמורה Temurah Temurah 7 35 6_3_5_4_6_5_6 33 33 Temurah 2a-34a 0 48 | קדשים Kodshim Kodashim כריתות Kereisos Keritot 6 43 7_6_10_3_8_9 27 27 Kerisos 2a-28b 0 49 | קדשים Kodshim Kodashim מעילה Me'ilah Me'ilah 6 38 4_9_8_6_5_6 21 21 Meilah Ends on 37b, but that includes Kinim/Tamid/Midos. NOTE: in orange PDF says 20, erroneous. Then they fix it by making Tamid 9, which is debatable because it starts on amud beis. https://daf-yomi.com/Data/UploadedFiles/Forums/42389.pdf 2a-22a 0 50 | קדשים Kodshim Kodashim תמיד Tamid Tamid 7 34 4_5_9_3_6_3_4 8 8 Tamid 25b-33b printed after Me'ilah. Orange PDF counts it as 9. https://daf-yomi.com/Data/UploadedFiles/Forums/42389.pdf 25b-33b 0 51 | קדשים Kodshim Kodashim מדות Middos Middot 5 34 9_6_8_7_4 0 4 Midos Mishnayos. 34a-37b printed after Me'ilah 0 52 | קדשים Kodshim Kodashim קנים Kinim Kinim 3 15 4_5_6 0 3 Kinnim Mishnayos. 22b-25a printed after Me'ilah 0 53 | טהרות Taharos Toharot כלים Keilim Keilim 30 254 9_8_8_4_11_4_6_11_8_8_9_8_8_8_6_8_17_9_10_7_3_10_5_17_9_9_12_10_8_4 0 0 0 54 | טהרות Taharos Toharot אוהלות Oholos Oholot 18 134 8_7_7_3_7_7_6_6_16_7_9_8_6_7_10_5_5_10 0 0 0 55 | טהרות Taharos Toharot נגעים Nega'im Nega'im 14 115 6_5_8_11_5_8_5_10_3_10_12_7_12_13 0 0 0 56 | טהרות Taharos Toharot פרה Parah Parah 12 96 4_5_11_4_9_5_12_11_9_6_9_11 0 0 0 57 | טהרות Taharos Toharot טהרות Taharos Tohorot 10 92 9_8_8_13_9_10_9_9_9_8 0 0 0 58 | טהרות Taharos Toharot מקואות Mikvaos Mikva'ot 10 71 8_10_4_5_6_11_7_5_7_8 0 0 0 59 | טהרות Taharos Toharot נדה Niddah Niddah 10 79 7_7_7_7_9_14_5_4_11_8 72 72 Niddah 13 11 60 | טהרות Taharos Toharot מכשירין Machshirin Makhshirin 6 54 6_11_8_10_11_8 0 0 0 61 | טהרות Taharos Toharot זבים Zavim Zavim 5 32 6_4_3_7_12 0 0 0 62 | טהרות Taharos Toharot טבול יום Tevul Yom Tevul Yom 4 26 5_8_6_7 0 0 0 63 | טהרות Taharos Toharot ידים Yadayim Yadayim 4 22 5_4_5_8 0 0 0 64 | טהרות Taharos Toharot עוקצים Uktzim Uktzim 3 28 6_10_12 0 0 0 65 | -------------------------------------------------------------------------------- /data/zmanim-coordinates-for-jewish-cities.tsv: -------------------------------------------------------------------------------- 1 | countryCode country state city latitude longitude timezone elevationSeeDisclaimer cityHeb countryHeb 2 | AT Austria Vienna 48.20849 16.37208 Europe/Vienna 171 וינה אוסטריה 3 | AU Australia Melbourne -37.814 144.96332 Australia/Melbourne מלבורן אוסטרליה 4 | AU Australia Sydney -33.86785 151.20732 Australia/Sydney סידני אוסטרליה 5 | BE Belgium Antwerpen 51.22047 4.40026 Europe/Brussels אנטווערפן בלגיה 6 | BE Belgium Brussels 50.85045 4.34878 Europe/Brussels בריסל בלגיה 7 | CA Canada Montreal 45.50884 -73.58781 America/Toronto מונטריאול קנדה 8 | CA Canada Ottawa 45.41117 -75.69812 America/Toronto אוטווה קנדה 9 | CA Canada Toronto 43.70011 -79.4163 America/Toronto טורונטו קנדה 10 | CH Switzerland Zurich 47.36667 8.55 Europe/Zurich ציריך שוייץ 11 | DE Germany Berlin 52.52437 13.41053 Europe/Berlin 74 ברלין גרמניה 12 | FR France Paris 48.85341 2.3488 Europe/Paris פאריז צרפת 13 | GB United Kingdom Gateshead 54.96209 -1.60168 Europe/London גייטסהד בריטניה 14 | GB United Kingdom London 51.50853 -0.12574 Europe/London לונדון בריטניה 15 | GB United Kingdom Manchester 53.48095 -2.23743 Europe/London מנצ'סטר בריטניה 16 | IL Israel Ashkelon 31.66926 34.57149 Asia/Jerusalem אשקלון ישראל 17 | IL Israel Beersheba 31.25181 34.7913 Asia/Jerusalem באר שבע ישראל 18 | IL Israel Bet Shemesh 31.73072 34.99293 Asia/Jerusalem בית שמש ישראל 19 | IL Israel Bnei Brak 32.08074 34.8338 Asia/Jerusalem בני ברק ישראל 20 | IL Israel Haifa 32.81841 34.9885 Asia/Jerusalem חיפה ישראל 21 | IL Israel Hebron 31.52935 35.0938 Asia/Hebron חברון ישראל 22 | IL Israel Jerusalem 31.76904 35.21633 Asia/Jerusalem ירושלים ישראל 23 | IL Israel Rehovot 31.89421 34.81199 Asia/Jerusalem רחובות ישראל 24 | IL Israel Safed 32.96465 35.496 Asia/Jerusalem צפת ישראל 25 | IL Israel Tel Aviv 32.08088 34.78057 Asia/Jerusalem תל אביב ישראל 26 | IL Israel Tiberias 32.79221 35.53124 Asia/Jerusalem טבריה ישראל 27 | RU Russia Moscow 55.75222 37.61556 Europe/Moscow מוסקבה רוסיה 28 | UA Ukraine Uman 48.74838 30.22184 Europe/Kiev אומן אוקראינה 29 | US United States CA Los Angeles 34.05223 -118.24368 America/Los_Angeles 89 לוס אנג'לס ארה"ב 30 | US United States FL Miami 25.77427 -80.19366 America/New_York 2 מיאמי ארה"ב 31 | US United States IL Chicago 41.85003 -87.65005 America/Chicago 179 שיקגו ארה"ב 32 | US United States MD Baltimore 39.29038 -76.61219 America/New_York 10 באלטימאר ארה"ב 33 | US United States MD Silver Spring 38.99067 -77.02609 America/New_York 104 סילבר ספרינג ארה"ב 34 | US United States MI Detroit 42.33143 -83.04575 America/Detroit 183 דטרויט ארה"ב 35 | US United States NJ Lakewood 40.09789 -74.21764 America/New_York 23 לייקווד ארה"ב 36 | US United States NJ Passaic 40.85677 -74.12848 America/New_York 34 פאסעיק ארה"ב 37 | US United States NJ Teaneck 40.8976 -74.01597 America/New_York 35 טינק ארה"ב 38 | US United States NY Brooklyn 40.6501 -73.94958 America/New_York 15 ברוקלין ארה"ב 39 | US United States NY Monroe 41.3306 -74.1868 America/New_York 0 מונרו ארה"ב 40 | US United States NY Monsey 41.11121 -74.06848 America/New_York 167 מאנסי ארה"ב 41 | US United States NY Woodbourne 41.3306 -74.1868 America/New_York 0 וודבורן ארה"ב 42 | US United States OH Cleveland 41.4995 -81.69541 America/New_York 199 קליבלנד ארה"ב 43 | US United States TX Dallas 32.78306 -96.80667 America/Chicago 128 דאלאס ארה"ב 44 | ZA South Africa Johannesburg -26.20227 28.04363 Africa/Johannesburg יאהאנעסבורג דרום אפריקה 45 | --------------------------------------------------------------------------------