aboutsummaryrefslogtreecommitdiff
path: root/scripts/genlect.go
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 08:49:57 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-07-28 08:49:57 +0200
commit70b805018f0ae0d8424c3c7de8f1169476385a35 (patch)
tree82de4bf52e588ab0c1f31ce0fc68d4b97b3d0de6 /scripts/genlect.go
parentd3b7f41c7a823bda6b7bafae3a156348c4ce687f (diff)
downloadlectio-70b805018f0ae0d8424c3c7de8f1169476385a35.tar.gz
lectio-70b805018f0ae0d8424c3c7de8f1169476385a35.zip
feat: complete OF+EF calendar coverage (movable feasts, vigils, ember days, transfers)
Ordinary Form: - Add the movable Marian memorials that have no fixed date: Mary, Mother of the Church (Monday after Pentecost) and the Immaculate Heart (Saturday after the Sacred Heart), computed in computeOF. - General Norms 60: two coinciding obligatory memorials both become optional and the ferial is observed -- except Mary, Mother of the Church, which keeps precedence per its 2018 decree. Extraordinary Form: - Capture fixed-date vigils in the sanctoral harvest (Christmas, the Nativity of St John the Baptist, Sts Peter & Paul, St Lawrence, the Assumption, All Saints, the Immaculate Conception) -- previously filtered out. - temporalEF: the movable vigils of the Ascension (I class eve) and Pentecost (Whitsun Eve), and the September/Advent Ember days (II class violet ferias). - transferIfImpededEF: the Annunciation transfers past Holy Week/the Easter octave to the Monday after Low Sunday; All Souls moves to Nov 3 when Nov 2 is a Sunday. - genlect harvests proper Masses for the new Ember/vigil days. Adds TestEFCoverage + TestOFMovableMemorials. Bumps to 0.39.0. Verified per-day: OF 0 real errors vs calapi (2026-2028, 100% correct-observed); EF 0 real errors vs missalemeum (2025-2027), residual = deep-tail vigil-occurrence and St Joseph Passiontide-transfer edges (~1-2 days/yr, documented).
Diffstat (limited to 'scripts/genlect.go')
-rw-r--r--scripts/genlect.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/scripts/genlect.go b/scripts/genlect.go
index 85ff1c2..6d7a43b 100644
--- a/scripts/genlect.go
+++ b/scripts/genlect.go
@@ -100,7 +100,11 @@ func main() {
}
slug := day.Observed.Slug
isSunday := d.Weekday() == time.Sunday
- if !isSunday && !properFerial[day.Season] {
+ // Ember and vigil days have a proper Mass even in the green seasons, so
+ // harvest them regardless of season (green ferias otherwise repeat the
+ // preceding Sunday and are skipped).
+ special := strings.Contains(slug, "ember") || strings.Contains(slug, "vigil")
+ if !isSunday && !properFerial[day.Season] && !special {
continue // green-season feria -> repeats the Sunday
}
if seen[slug] {