diff options
Diffstat (limited to 'internal/caldata/readings.go')
| -rw-r--r-- | internal/caldata/readings.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/internal/caldata/readings.go b/internal/caldata/readings.go index 62ef1fc..44d1bc1 100644 --- a/internal/caldata/readings.go +++ b/internal/caldata/readings.go @@ -60,6 +60,9 @@ func Readings(sel calendar.Selection, layers []calendar.Layer, date time.Time, d if r := efBVMSaturdayReadings(day); len(r) > 0 { return r } + if r := efNativityOctaveReadings(day); len(r) > 0 { + return r + } if r := TemporalReadings("old", day.Observed.Slug); len(r) > 0 { return r } @@ -145,3 +148,43 @@ func efBVMSaturdayReadings(day calendar.LiturgicalDay) []calendar.Reading { {Part: "gospel", Citation: gospel}, } } + +// efNativityOctaveReadings returns the Mass of a WEEKDAY within the Octave of +// the Nativity -- 29, 30 and 31 December. +// +// The Missal gives those days a direct formulary, "Diebus infra octavam +// Nativitatis Domini, II classis": Titus 3:4-7 / Luke 2:15-20, and each date's +// own rubric points at it ("Die 29 decembris ... Missa Puer natus est nobis, +// ut supra", repeated verbatim on the 30th and 31st). They are named days in +// the calendarium too -- "De V die infra octavam Nativitatis Domini, II +// classis" and so on -- not ordinary ferias. +// +// lectio treated them as ordinary Christmas ferias, so they fell back to the +// preceding Sunday and served "Dominica infra octavam Nativitatis Domini" +// (Gal 4:1-7 / Luke 2:33-40). That is a DIFFERENT heading, for the Sunday +// specifically. colitur made the identical mistake once, measured it against +// real years and reverted it; its bootstrap_lectionary.ml records the +// rejection so it is not re-attempted, with the scan references for both. +// +// Only the WEEKDAYS. When 29-31 December falls on a Sunday the day really is +// "Dominica infra octavam" and keeps the Sunday's Mass, which is the +// distinction the wrong citation blurred -- so the Sunday is excluded here +// rather than merely happening not to match. +func efNativityOctaveReadings(day calendar.LiturgicalDay) []calendar.Reading { + if day.Date.Month() != time.December || day.Date.Day() < 29 { + return nil + } + if day.Weekday == time.Sunday { + return nil + } + // The day within the octave, not a feast that outranks it: the observed + // office must still be the temporal one. A sanctoral feast keeps its own + // readings, as it did before this. + if !strings.HasPrefix(day.Observed.Slug, "ef-christmas-") { + return nil + } + return []calendar.Reading{ + {Part: "first", Citation: "Titus 3:4-7"}, + {Part: "gospel", Citation: "Luke 2:15-20"}, + } +} |
