-
Notifications
You must be signed in to change notification settings - Fork 1
feat: Add liturgical calendar module #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Add comprehensive TypeScript liturgical calendar module: ## Features - Easter computation (Meeus/Jones/Butcher algorithm, 1583-2499) - Complete 14-level precedence system (UNLY) - Temporale (moveable feasts) and Sanctorale (fixed feasts) - Fragment path generation for content lookup - Latin enum values for international compatibility ## Test Coverage - 375 tests passing - Rare exceptions tested (1-2 per century occurrences) - External validation against: - Church Calendar API (calapi.inadiutorium.cz) - CEI (Conferenza Episcopale Italiana) - USCCB official calendars ## Rare Cases Tested - Kyriopascha 2035 (Easter on March 25 = Annunciation) - St. Joseph on Palm Sunday (2062) - Annunciation during Holy Week transfers - Immaculate Conception on Advent Sunday Original code: ePrex Calendar System by Marco Del Pin 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add liturgical colors (GIRM) and common texts (Commune) support: - LitColor: VIRIDIS, PURPURA, ALBUS, RUBER, ROSEA with i18n (la/en/it) - LitCommon: Main categories + subcategories for Martyrs, Pastors, Virgins, Saints - Latin translations for all common text categories - Helper functions: getSeasonColor(), getColorName(), getCommonPath() Ported from ePrex Calendar System. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive regional configuration and internationalization: Configuration (config.ts): - Roman Missal editions (1970, 2002, 2008) - Ascension: Thursday vs Sunday transfer - Corpus Christi: Thursday vs Sunday transfer - Epiphany: January 6 vs Sunday transfer - National calendar presets (14 countries: VA, IT, US, GB, DE, FR, ES, PL, BR, PH, IE, AU, CA, MX, AR) - Diocese configuration support - US province-specific Ascension handling Internationalization (i18n.ts): - 8 locales: Latin, Italian, English, Spanish, French, German, Portuguese, Polish - Seasons, ranks, colors, days translations - Mass parts and Liturgy of Hours terms - Helper functions for localized formatting Bumped version to 1.1.0 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive test coverage for: - colors.test.ts: LitColor enum, i18n translations, getSeasonColor, getColorName - commons.test.ts: LitCommon categories, subcategories, Latin translations, getCommonPath - config.test.ts: MissaleRomanum editions, moveable feast configs, national calendars, diocese support - i18n.test.ts: 8 locales, seasons, ranks, colors, days, liturgical terms, helper functions Total: 491 tests (was 375), 2087 expect() calls 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Thank you for your effort @marcodelpin, however the purpose of the current repository isn't to host an application, but simply to establish the canonicalized IDs that can be a reference for anyone building a liturgical calendar application. A reference for this repository is the Unicode Consortium "Common Locale Data Repository" (see https://github.com/unicode-org/cldr). In any case the temporale.ts and sanctorale.ts files were useful for the mapping process which I continued in this initial external repository: https://github.com/JohnRDOrazio/liturgical-calendar-ids. After mapping the IDs from your temporale.ts and sanctorale.ts to the litcal IDs, it would seem that there are a number of IDs that are still missing on the ePrex side (unless they are to be found elsewhere?), see:
I have documented some special mappings between ePrex and LitCal IDs in README - Special mappings between eprex and litcal. I will now attempt to look over the romcal codebase to see if I can extract and map the IDs from there too. Once we have a comprehensive mapping of all the IDs, I will publish the JSON / MD files here; again, no application level calculations in this repository, just the process of canonicalization of the IDs. |
|
@JohnRDOrazio Thank you for the detailed feedback and for creating the liturgical-calendar-ids repo! I now understand the CLEDR philosophy (modeled after Unicode CLDR) - it should be a pure data repository, not code. My Proposal:
Benefits:
Let me know if you'd prefer the code in |
Summary
Add comprehensive TypeScript liturgical calendar module (v1.1.0) - a client-side complement to the existing liturgical-calendar-api (PHP server).
Relationship to liturgical-calendar-api
This TypeScript module enables:
Features
Core Calendar
Liturgical Support
Configuration (NEW)
Internationalization (NEW)
getSeasonName(),formatWeekName(),getTerm()Planned Enhancements
Test Coverage
491 tests passing, 2087 expect() calls (was 375/1610)
External Validation Sources
Rare Exceptions Tested
Credits
Original code: ePrex Calendar System by Marco Del Pin