diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-28 14:35:24 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-28 14:35:24 +0200 |
| commit | a80e61963756a28a3963a0442a8ccc1572518373 (patch) | |
| tree | 602540ee619ce1d64c16e7e9ca0adb7a7cfb2194 /internal/calendar/temporal_ef.go | |
| parent | 0586599fc6020df996c4278230eeea99b9d070cb (diff) | |
| download | lectio-a80e61963756a28a3963a0442a8ccc1572518373.tar.gz lectio-a80e61963756a28a3963a0442a8ccc1572518373.zip | |
fix(calendar): OF precedence/transfer + readings resolution; EF Pentecost octave
Fixes found by validating the offline engine per-day vs the LiturgicalCalendar
API (OF) and missalemeum (EF) across 2005-2050. OF calendar is now 0 real
errors in the forward window (season/cycle already perfect).
OF precedence/transfer (calendar):
- Ash Wednesday and Holy Week Mon-Wed are band-2 privileged, so a coinciding
feast (Chair of St Peter on Ash Wednesday) is suppressed, not observed.
- Solemnities transfer out of Holy Week / the Easter octave: the Annunciation
defers to the Monday after the 2nd Sunday of Easter; St Joseph is anticipated
to the Saturday before Palm Sunday; the Nativity of St John the Baptist moves
to Jun 23 when a Lord's solemnity (Sacred Heart / Corpus Christi) falls Jun 24.
- Within a precedence band, a solemnity of the Lord/BVM outranks a saint's
(dignity tiebreak) rather than losing an alphabetical slug tie.
- Perpetua & Felicity corrected optional -> obligatory memorial.
OF readings resolution (bible.OFRef + lectionary data):
- Verse-accurate Hebrew->Vulgate psalm mapping incl. the split psalms
(9/10, 114/115, 116, 147); "+" verse joins and abbreviated ranges ("127-28")
normalized; single-chapter books (2/3 John, Jude) get chapter 1.
- Cleaned harvest artifacts from of-lectionary.ini (descriptive-suffix gospels,
"or Year A" alternates, "*"/"[Vulg.]"/bracket markers, slash abbreviations);
Joel/Malachi/Zechariah/Esther book-versification citations fixed to Vulgate.
- Split a merged Ps 15:10/11 row in vul.tsv. Result: 0 unresolvable OF readings
over 2557 rendered days (cycles A/B/C, varied Easters).
EF: the Octave of Pentecost (Whit Monday-Saturday) is red, not white.
Diffstat (limited to 'internal/calendar/temporal_ef.go')
| -rw-r--r-- | internal/calendar/temporal_ef.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/calendar/temporal_ef.go b/internal/calendar/temporal_ef.go index 877545c..9e7e7b2 100644 --- a/internal/calendar/temporal_ef.go +++ b/internal/calendar/temporal_ef.go @@ -82,6 +82,11 @@ func temporalEF(date time.Time) temporalDay { easter := Easter(y) season := efSeason(date, y, easter) col := efColour(season) + // The Octave of Pentecost (Whit Monday through the Ember Saturday, easter+50 + // to +55) is red, not the white of the rest of Paschaltide. + if !date.Before(easter.AddDate(0, 0, 50)) && !date.After(easter.AddDate(0, 0, 55)) { + col = Red + } sun := date.Weekday() == time.Sunday // Major feasts of the Lord (I class): nice titles + colour. |
