From 7482df17774ea51ec91438113e96337d059afa4c Mon Sep 17 00:00:00 2001 From: Will Estes Date: Sun, 6 Sep 2026 08:38:49 -0400 Subject: [PATCH] Give each day of Easter's octave its own real content MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Easter Monday-Saturday previously all inherited Easter Sunday's single collect and single-nocturn Matins content via the shared `easter-sunday` temporal id, even though the reference engine gives each of the six days its own real proper (own title, rank, collect, Gospel+homily). Adds six new temporal-feasts records (anchor `{kind: easter, offset: 1..6}`, same mechanism as the Passiontide batch), six new collects transcribed from each day's own Office Oratio, and six new nocturn-readings files with each day's own Gospel pericope (from the Missal) and patristic homily. Also fixes two mechanism gaps this surfaced: hours/matins.ts's 3-nocturn/ Sunday-style gate was keyed by `winner.id` (now per-weekday) instead of `temporalId` (still shared for the whole octave, which is what actually supplies the content); and the Wednesday-Saturday ferial antiphon override was keyed by the old shared `easter-sunday` id. Fact-checked two adjacent assumptions along the way: commemorations stay fully suppressed Monday-Saturday (the user's own 2026-09-01 "no commemoration from Palm Sunday through Low Sunday" instruction already covers this span, unchanged), and the correct per-day names are "Die N infra Octavam Paschæ" (Mon-Fri) / "Sabbato in Albis" (Sat only) rather than a blanket "Hebdomada in Albis" for every day. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01W8cttEhwbN3f6hiHQHqCae --- TODO.md | 56 ++++++- .../temporal-feasts/easter-friday.yml | 9 ++ .../temporal-feasts/easter-monday.yml | 36 +++++ .../temporal-feasts/easter-saturday.yml | 19 +++ .../temporal-feasts/easter-thursday.yml | 9 ++ .../temporal-feasts/easter-tuesday.yml | 11 ++ .../temporal-feasts/easter-wednesday.yml | 13 ++ ...matins-ferial-named-antiphon-overrides.yml | 28 +++- .../nocturn-readings/easter-friday.yml | 96 ++++++++++++ .../nocturn-readings/easter-monday.yml | 147 ++++++++++++++++++ .../nocturn-readings/easter-saturday.yml | 112 +++++++++++++ .../nocturn-readings/easter-thursday.yml | 104 +++++++++++++ .../nocturn-readings/easter-tuesday.yml | 123 +++++++++++++++ .../nocturn-readings/easter-wednesday.yml | 118 ++++++++++++++ .../temporal/easter-friday-collect.yml | 19 +++ .../temporal/easter-monday-collect.yml | 23 +++ .../temporal/easter-saturday-collect.yml | 19 +++ .../temporal/easter-thursday-collect.yml | 19 +++ .../temporal/easter-tuesday-collect.yml | 19 +++ .../temporal/easter-wednesday-collect.yml | 20 +++ src/hours/matins.ts | 30 ++-- src/hours/resolve-common.ts | 15 ++ tests/calendar/april-sanctoral.test.ts | 15 +- tests/hours/matins.test.ts | 26 +++- 24 files changed, 1056 insertions(+), 30 deletions(-) create mode 100644 src/data/calendar/temporal-feasts/easter-friday.yml create mode 100644 src/data/calendar/temporal-feasts/easter-monday.yml create mode 100644 src/data/calendar/temporal-feasts/easter-saturday.yml create mode 100644 src/data/calendar/temporal-feasts/easter-thursday.yml create mode 100644 src/data/calendar/temporal-feasts/easter-tuesday.yml create mode 100644 src/data/calendar/temporal-feasts/easter-wednesday.yml create mode 100644 src/data/propers/nocturn-readings/easter-friday.yml create mode 100644 src/data/propers/nocturn-readings/easter-monday.yml create mode 100644 src/data/propers/nocturn-readings/easter-saturday.yml create mode 100644 src/data/propers/nocturn-readings/easter-thursday.yml create mode 100644 src/data/propers/nocturn-readings/easter-tuesday.yml create mode 100644 src/data/propers/nocturn-readings/easter-wednesday.yml create mode 100644 src/data/propers/temporal/easter-friday-collect.yml create mode 100644 src/data/propers/temporal/easter-monday-collect.yml create mode 100644 src/data/propers/temporal/easter-saturday-collect.yml create mode 100644 src/data/propers/temporal/easter-thursday-collect.yml create mode 100644 src/data/propers/temporal/easter-tuesday-collect.yml create mode 100644 src/data/propers/temporal/easter-wednesday-collect.yml diff --git a/TODO.md b/TODO.md index c43cbdd..67b9ce2 100644 --- a/TODO.md +++ b/TODO.md @@ -2518,8 +2518,6 @@ seasonally variable — what's stored is whichever form rendered live on each one's already-chosen clean query date, not a season-aware substitution. Same class of gap as the Paschaltide alleluia suffix elsewhere in this file, flagged not fixed. -- **Easter's own octave** — explicitly tabled ("easter needs a whole - different discussion"). ### The "which Sunday governs this date" temporal-id algorithm — done (2026-08) @@ -6393,3 +6391,57 @@ usable for a future funeral/anniversary occasion) and a thinned `hours/all-souls Prime/Compline's own day-specific collects). No new calendar trigger added — still only Nov 2 exercises this. All 8 hour files' wiring unchanged; full suite (2051 passed) and `tsc --noEmit` both still pass with no behavior change. + +### Easter's own octave — done (2026-09-06) + +Previously tabled ("easter needs a whole different discussion") because Easter Monday-Saturday +all folded onto the governing Sunday's own `easter-sunday` temporal id (`calendar/temporal-id.ts`'s +`sundayOnOrBefore` fold), reusing Easter Sunday's single collect and single-nocturn Matins content +wholesale for the entire week — even though the reference engine (`web/www/horas/Latin/Tempora/ +Pasc0-1.txt` through `Pasc0-6.txt`) gives each of the six days its own real proper: own title ("Die +II/III/IV/V/VI infra octavam Paschæ", Saturday "Sabbato in Albis"), own rank, own collect, own +Gospel+homily. User, 2026-09-06: "it's an octave and you should have sourced the octave readings." + +Fixed via the same generic mechanism the Passiontide batch already established (six new +`data/calendar/temporal-feasts/easter-{monday..saturday}.yml` records, anchored `{kind: easter, +offset: 1..6}`, `rank` omitted since `data/calendar/temporal-categories.yml`'s pre-existing +`privileged-feria-major` classification for offsets 1-6 already guarantees these records take over +unconditionally) — no new mechanism, just six new anchor records plugging into +`calendar/movable-feasts.ts`. Six new collects (`data/propers/temporal/easter-{monday..saturday}- +collect.yml`, transcribed from each day's own Office `[Oratio]`, `$Per Dominum`/`$Per eumdem` +macros expanded) and six new nocturn-readings files (`data/propers/nocturn-readings/easter- +{monday..saturday}.yml`, each day's own Gospel pericope from the Missal `[Evangelium]` + patristic +homily, same "full pericope from the Mass propers, not the bare Office incipit" convention as +`easter-sunday.yml`). All six ids added to `resolve-common.ts`'s `ALWAYS_OVERRIDE_TEMPORAL_IDS`. + +Two mechanism fixes needed along the way, both found via a live end-to-end smoke test before +trusting the content: +- `hours/matins.ts`'s `resolveOrdo` gated the "does this day get the Sunday-style 3-nocturn/13-psalm + treatment" check (`hasTemporalNamedOverride`) on `winner.id` — correct back when Monday/Tuesday's + own `winner.id` still equaled the shared `easter-sunday` id, but wrong now that they have their + own real `winner.id`. Repointed to `temporalId` (`resolveTemporalId`, still `easter-sunday` for + the whole octave), matching what `sundayNocturnFor`'s own content-fetch lookup already keyed by a + few lines up — the two lookups now agree, as they always should have. +- `data/hours/matins-ferial-named-antiphon-overrides.yml`'s Wednesday-Saturday antiphon override was + keyed by the old shared `easter-sunday` id (that lookup, unlike the one above, is genuinely by + `winner.id`, not `temporalId`) — split into four entries, one per day's own new id, same shared + antiphon content via a YAML anchor. + +Verified `day.commemorations` still comes out `[]`-equivalent for every one of the six days (the +one entry present is the same harmless self-referential `{kind:'temporal', id:'easter-sunday'}` +placeholder every other movable-feast override already produces and `day-label.ts`'s +`collectCommemorations` already drops for display — confirmed this is deliberate, not a bug, via +`tests/calendar/transfer.test.ts`'s pre-existing Holy Monday case, after almost "fixing" it away). +Two pre-existing tests updated for the new `winner.id` values (`tests/hours/matins.test.ts`, +`tests/calendar/april-sanctoral.test.ts`) — no behavior they were actually testing changed. + +Also fact-checked and corrected two adjacent user assumptions along the way: commemorations are +*not* newly allowed Monday-Saturday of Easter week (the user's own 2026-09-01 "no commemoration +anything from Palm Sunday through Low Sunday" instruction already covers this span and stays +unchanged); and the per-day names are "Die N infra Octavam Paschæ" (Monday-Friday) / "Sabbato in +Albis" (Saturday) — "Hebdomada in Albis" is a real but looser term for the whole week as a unit, +not each weekday's own rubrical title, and only Saturday (paired with the following "Dominica in +Albis", i.e. Low Sunday, not yet itself named beyond a generic ordinal — a separate, smaller, +still-open gap) carries a name distinct from the plain "Die N" pattern. + +`npm test` (2066 passed) and `tsc --noEmit` both pass. diff --git a/src/data/calendar/temporal-feasts/easter-friday.yml b/src/data/calendar/temporal-feasts/easter-friday.yml new file mode 100644 index 0000000..9dee3be --- /dev/null +++ b/src/data/calendar/temporal-feasts/easter-friday.yml @@ -0,0 +1,9 @@ +# Read from the reference engine: web/www/horas/Latin/Tempora/Pasc0-5.txt +# ([Officium] "Die VI infra octavam Paschæ", [Rank] "Semiduplex I +# classis"). See easter-monday.yml's own header for the fuller reasoning. +id: easter-friday +name: "Sixth Day within the Octave of Easter" +nameLa: "Die VI infra Octavam Paschæ" +anchor: + kind: easter + offset: 5 diff --git a/src/data/calendar/temporal-feasts/easter-monday.yml b/src/data/calendar/temporal-feasts/easter-monday.yml new file mode 100644 index 0000000..41e9135 --- /dev/null +++ b/src/data/calendar/temporal-feasts/easter-monday.yml @@ -0,0 +1,36 @@ +# Read from the reference engine: web/www/horas/Latin/Tempora/Pasc0-1.txt +# ([Officium] "Die II infra octavam Paschæ", [Rank] "Duplex I classis", +# [Rule] "Omit Hymnus Preces Suffragium Commemoratio" -- an explicit, +# literal "no commemoration" for this day, not just this app's own +# already-settled privileged-feria-major blanket rule). +# +# Previously not modeled as its own record: `resolveTemporalId` folds +# every feria of Easter week onto the governing Sunday's own id +# (`easter-sunday`), so Monday-Saturday all reused Easter Sunday's single +# collect and single-nocturn Matins content wholesale, even though the +# reference engine gives each of these six days (Pasc0-1 through Pasc0-6) +# its own real proper: own title, own collect, own Gospel+homily. Same +# gap/fix shape as Passiontide's own six days (see monday-passion-week.yml +# and siblings) -- this file (and its five siblings) gives Easter Monday a +# real identity of its own instead. +# +# `rank` omitted on purpose, same reasoning as the Passiontide batch: +# `calendar/movable-feasts.ts`'s `applyMovableFeasts` never actually +# consults it here -- `data/calendar/temporal-categories.yml`'s +# `privileged-feria-major` classification (already covering Easter-octave +# offsets 1-6) guarantees `resolvedWinner.kind === 'temporal'` reaches +# `applyMovableFeasts` unconditionally, so this record always takes over +# regardless of what `rank` would say. That same privileged-feria-major +# categorization is also why this file doesn't need to encode "no +# commemoration" itself: `decideOccurrence`'s own privileged-feria-major +# branch already gives zero commemorations to any candidate, any rank +# (direct instruction, 2026-09-01: "you dont commemorate -anything- from +# palm sunday through low sunday") -- this record only needed to give the +# day its own name/collect/reading identity, not re-litigate that already- +# settled precedence question. +id: easter-monday +name: "Second Day within the Octave of Easter" +nameLa: "Die II infra Octavam Paschæ" +anchor: + kind: easter + offset: 1 diff --git a/src/data/calendar/temporal-feasts/easter-saturday.yml b/src/data/calendar/temporal-feasts/easter-saturday.yml new file mode 100644 index 0000000..b1419b9 --- /dev/null +++ b/src/data/calendar/temporal-feasts/easter-saturday.yml @@ -0,0 +1,19 @@ +# Read from the reference engine: web/www/horas/Latin/Tempora/Pasc0-6.txt +# ([Officium] "Sabbato in Albis", [Rank] "Semiduplex I classis"). Unlike +# its five siblings (Monday-Friday, all titled "Die N infra octavam +# Paschæ" in the source), this day alone carries its own real historical +# name -- "Saturday in [garments of] White" -- the day the newly-baptized +# would finally have set aside the white baptismal robes they'd worn all +# week, one day ahead of the following Sunday's parallel name ("Dominica +# in Albis", i.e. Low Sunday, not yet modeled with its own name -- see +# `easter-octave` in nocturn-readings/propers, currently unnamed beyond +# the generic ordinal "First Sunday after Easter"). Kept as its own named +# exception here rather than folded into the generic "Nth Day within the +# Octave" phrasing its siblings use -- see easter-monday.yml's own header +# for the shared reasoning behind the record itself. +id: easter-saturday +name: "Saturday in Albis" +nameLa: "Sabbato in Albis" +anchor: + kind: easter + offset: 6 diff --git a/src/data/calendar/temporal-feasts/easter-thursday.yml b/src/data/calendar/temporal-feasts/easter-thursday.yml new file mode 100644 index 0000000..34af485 --- /dev/null +++ b/src/data/calendar/temporal-feasts/easter-thursday.yml @@ -0,0 +1,9 @@ +# Read from the reference engine: web/www/horas/Latin/Tempora/Pasc0-4.txt +# ([Officium] "Die V infra octavam Paschæ", [Rank] "Semiduplex I +# classis"). See easter-monday.yml's own header for the fuller reasoning. +id: easter-thursday +name: "Fifth Day within the Octave of Easter" +nameLa: "Die V infra Octavam Paschæ" +anchor: + kind: easter + offset: 4 diff --git a/src/data/calendar/temporal-feasts/easter-tuesday.yml b/src/data/calendar/temporal-feasts/easter-tuesday.yml new file mode 100644 index 0000000..30fc4e2 --- /dev/null +++ b/src/data/calendar/temporal-feasts/easter-tuesday.yml @@ -0,0 +1,11 @@ +# Read from the reference engine: web/www/horas/Latin/Tempora/Pasc0-2.txt +# ([Officium] "Die III infra octavam Paschæ", [Rank] "Duplex I classis", +# [Rule] "no commemoratio", explicit and literal). See easter-monday.yml's +# own header for the full reasoning (gap, fix shape, why `rank` is +# omitted, why "no commemoration" needs no separate encoding here). +id: easter-tuesday +name: "Third Day within the Octave of Easter" +nameLa: "Die III infra Octavam Paschæ" +anchor: + kind: easter + offset: 2 diff --git a/src/data/calendar/temporal-feasts/easter-wednesday.yml b/src/data/calendar/temporal-feasts/easter-wednesday.yml new file mode 100644 index 0000000..f53c7e4 --- /dev/null +++ b/src/data/calendar/temporal-feasts/easter-wednesday.yml @@ -0,0 +1,13 @@ +# Read from the reference engine: web/www/horas/Latin/Tempora/Pasc0-3.txt +# ([Officium] "Die IV infra octavam Paschæ", [Rank] "Semiduplex I +# classis" -- one tier below Monday/Tuesday's Duplex I classis, and +# without their own [Rule]'s explicit "no commemoratio" line, but still +# inside the same privileged-feria-major span (offsets 1-6) that already +# gives every day of Easter week zero commemorations regardless. See +# easter-monday.yml's own header for the fuller reasoning. +id: easter-wednesday +name: "Fourth Day within the Octave of Easter" +nameLa: "Die IV infra Octavam Paschæ" +anchor: + kind: easter + offset: 3 diff --git a/src/data/hours/matins-ferial-named-antiphon-overrides.yml b/src/data/hours/matins-ferial-named-antiphon-overrides.yml index 97b76fa..e908beb 100644 --- a/src/data/hours/matins-ferial-named-antiphon-overrides.yml +++ b/src/data/hours/matins-ferial-named-antiphon-overrides.yml @@ -13,9 +13,7 @@ # (each with its own different psalm set) rather than authored per-day. # `hours/matins.ts`'s `ferialNamedAntiphonedNocturn` does the splitting. # -# Easter Octave, Wednesday-Saturday (`easter-sunday`, restricted via -# `weekdays` the same way the Sunday-side override restricts itself to -# just Sunday/Monday/Tuesday of the same span): live-verified (Pofficium.pl, +# Easter Octave, Wednesday-Saturday: live-verified (Pofficium.pl, # prayMatutinum, Monastic Tridentinum 1617, 2026-04-08/09/10/11) that all 4 # weekdays share the exact same 2 antiphons verbatim — not per-day content, # despite each having a different Gospel reading in the nocturn-readings @@ -28,10 +26,28 @@ # count (a design choice, not a transcription — the reference's own # antiphon/psalm-group boundary doesn't map onto vu's differently-sized # pool at all). -easter-sunday: - weekdays: [wednesday, thursday, friday, saturday] - antiphons: +# +# Keyed by each weekday's own real `day.winner.id` (2026-09-06: Easter +# week Monday-Saturday each got a real `temporal-feasts` record of their +# own — see calendar/temporal-feasts/easter-wednesday.yml and siblings — +# so the single shared `easter-sunday` key this override used before no +# longer matches `winner.id` for these four days). `weekdays` is left as a +# single-entry array per record now that each key already names exactly +# one weekday — a leftover shape from when one shared key covered all +# four, kept only because `FerialNamedOverride.weekdays` is not optional. +easter-wednesday: + weekdays: [wednesday] + antiphons: &easter-octave-ferial-antiphons - la: "Jesum qui crucifíxus est quǽritis, allelúja; non est hic: surréxit enim, sicut dixit vobis, allelúja." en: "You seek Jesus who was crucified, alleluia; he is not here, for he is risen, as he said, alleluia." - la: "Veníte et vidéte locum ubi pósitus erat Dóminus, allelúja, allelúja." en: "Come, see the place where the Lord was laid, alleluia, alleluia." +easter-thursday: + weekdays: [thursday] + antiphons: *easter-octave-ferial-antiphons +easter-friday: + weekdays: [friday] + antiphons: *easter-octave-ferial-antiphons +easter-saturday: + weekdays: [saturday] + antiphons: *easter-octave-ferial-antiphons diff --git a/src/data/propers/nocturn-readings/easter-friday.yml b/src/data/propers/nocturn-readings/easter-friday.yml new file mode 100644 index 0000000..fbcde65 --- /dev/null +++ b/src/data/propers/nocturn-readings/easter-friday.yml @@ -0,0 +1,96 @@ +# Matins content for Easter Friday (temporalId easter-friday, Pasc0-5 -- +# "Die VI infra octavam Paschæ"). Sourced from web/www/horas/Latin/ +# Tempora/Pasc0-5.txt (Latin homily) / English/Tempora/Pasc0-5.txt +# (English homily); Gospel pericope from the Missal's own [Evangelium] +# (missa/Latin+English/Tempora/Pasc0-5.txt), same convention as +# easter-monday.yml. +# +# Single-nocturn source form, same structural note as easter-monday.yml. +# Lectio1's homily portion (incipit dropped) combined with Lectio2-3 into +# one continuous reading. Responsory: the source's own [Responsory1] +# ("Surgens Jesus Dóminus noster"). +id: easter-friday +readings: + - nocturn: 1 + isGospel: true + citation: { la: "Matthæus 28:16-20", en: "Matthew 28:16-20" } + text: + la: >- + In illo témpore: Undecim discípuli abiérunt in Galilǽam, in montem, ubi constitúerat illis + Jesus. Et vidéntes eum adoravérunt: quidam autem dubitavérunt. Et accédens Jesus locútus est + eis, dicens: Data est mihi omnis potéstas in cœlo, et in terra. Eúntes ergo, docéte omnes + gentes, baptizántes eos in nómine Patris, et Fílii, et Spíritus Sancti: docéntes eos serváre + ómnia, quæcúmque mandávi vobis. Et ecce, ego vobíscum sum ómnibus diébus usque ad + consummatiónem sǽculi. + en: >- + At that time, the eleven disciples went into Galilee, unto the mountain where Jesus had + appointed them. And seeing Him they adored: but some doubted. And Jesus coming, spoke to + them, saying: All power is given to Me in heaven and in earth. Going therefore, teach ye all + nations; baptizing them in the name of the Father, and of the Son, and of the Holy Ghost: + teaching them to observe all things whatsoever I have commanded you: and behold I am with you + all days, even to the consummation of the world. + status: { la: verified, en: verified } + + - nocturn: 1 + isGospel: false + source: "St. Jerome, Priest, Book 4, Commentary on the end of Matthew" + text: + la: >- + Post resurrectiónem Jesus in monte Galilǽæ conspícitur, ibíque adorátur; licet quidam + dúbitent, et dubitátio eórum nostram áugeat fidem. Tunc maniféstius osténditur Thomæ, et + latus láncea vulnerátum, et manus fixas demónstrat clavis. Accédens Jesus locútus est eis, + dicens: Data est mihi omnis potéstas in cælo et in terra. Illi potéstas data est, qui paulo + ante crucifíxus, qui sepúltus in túmulo, qui mórtuus jacúerat, qui póstea resurréxit. In cælo + autem et in terra potéstas data est: ut qui ante regnábat in cælo, per fidem credéntium + regnet et in terris. + + + Eúntes autem docéte omnes gentes, baptizántes eos in nómine Patris, et Fílii, et Spíritus + Sancti. Primum docent omnes gentes, deínde doctas intíngunt aqua. Non enim potest fíeri, ut + corpus baptísmi recípiat sacraméntum, nisi ante ánima fídei suscéperit veritátem. Baptizántur + autem in nómine Patris, et Fílii, et Spíritus Sancti: ut quorum una est divínitas, una sit + largítio: noménque Trinitátis, unus Deus est. + + + Docéntes eos serváre ómnia, quæcúmque mandávi vobis. Ordo præcípuus: jussit Apóstolis, ut + primum docérent univérsas gentes, deínde fídei intíngerent sacraménto, et post fidem ac + baptísma, quæ essent observánda præcíperent. Ac ne putémus lévia esse, quæ jussa sunt, et + pauca, áddidit: Omnia quæcúmque mandávi vobis: ut quicúmque credíderint, qui in Trinitáte + fúerint baptizáti, ómnia fáciant, quæ præcépta sunt. Et ecce ego vobíscum sum usque ad + consummatiónem sǽculi. Qui usque ad consummatiónem sǽculi cum discípulis se futúrum esse + promíttit, et illos osténdit semper esse victúros, et se nunquam a credéntibus recessúrum. + en: >- + After His Resurrection Jesus was seen on a mountain in Galilee, and there He was worshipped; + and, albeit some doubted, their doubts have led to a further establishing of our faith. Then + He showed Himself more openly unto Thomas, and made him handle the Side that was pierced with + the spear, and the Hands wherein were the holes of the nails. And Jesus came and spake unto + them, saying: All power is given unto Me in heaven and in earth. Yea, all power is given unto + Him Who but a little while before had been crucified, and buried in the grave, and had lain + among the dead, but Who also had risen again. Power is given unto Him in heaven and in earth, + that He Who of everlasting had been King of heaven, might have a Monarchy on earth also, + through the faith of them which believe in Him. + + + Go ye therefore and teach all nations, baptizing them in the Name of the Father, and of the + Son, and of the Holy Ghost. First, they teach all nations; then, they wash with water them + whom they have taught. For it is impossible for the body to receive the Sacrament of Baptism, + unless the mind first receive the truth of the faith. And they are baptized In the Name of + the Father, and of the Son, and of the Holy Ghost for, even as the Godhead of the Father, and + of the Son, and of the Holy Ghost, is all One, so is the one grace of Baptism the gift of all + the Three Divine Persons: and the Name of the Trinity is the Name of One God. + + + Preaching them to observe all things whatsoever I have commanded you. The order of the + Lord's commands to the Apostles is markedly this. First, to teach all nations; secondly, to + make them partake in the Sacrament of the faith; thirdly, when they had believed and been + baptized, to teach them what to observe. And lest we should think that He commanded things + light and few, He hath said: All things whatsoever I have commanded you, so that all, who + have believed and been baptized in the Name of the Trinity, are bound to observe all things + whatsoever He hath commanded. And, lo, I am with you alway, even unto the end of the world. + He Who promiseth that He will be with His disciples even unto the end of the world, doth give + them thereby to know that they will be always conquerors, and that He will never fail any who + believe in Him. + responsory: + la: "R. Surgens Jesus Dóminus noster, stans in médio discipulórum suórum, dixit: * Pax vobis, allelúja: gavísi sunt discípuli viso Dómino, allelúja.\nV. Una ergo sabbatórum, cum fores essent clausæ, ubi erant discípuli congregáti, venit Jesus, et stetit in medio eórum, et dixit eis.\nR. Pax vobis, allelúja: gavísi sunt discípuli viso Dómino, allelúja." + en: "R. After that our Lord Jesus was risen again, He came and stood in the midst of His disciples, and said unto them: * Peace be unto you, alleluia. Then were the disciples glad, when they saw the Lord, alleluia.\nV. The first day of the week, when the doors were shut where the disciples were assembled, came Jesus, and stood in the midst, and said unto them:\nR. Peace be unto you, alleluia. Then were the disciples glad, when they saw the Lord, alleluia." + status: { la: verified, en: verified } diff --git a/src/data/propers/nocturn-readings/easter-monday.yml b/src/data/propers/nocturn-readings/easter-monday.yml new file mode 100644 index 0000000..d17926b --- /dev/null +++ b/src/data/propers/nocturn-readings/easter-monday.yml @@ -0,0 +1,147 @@ +# Matins content for Easter Monday (temporalId easter-monday, Pasc0-1 -- +# "Die II infra octavam Paschæ"). Sourced from web/www/horas/Latin/ +# Tempora/Pasc0-1.txt (Latin homily) / English/Tempora/Pasc0-1.txt +# (English homily), and the Gospel pericope itself from the Missal's own +# [Evangelium] (missa/Latin/Tempora/Pasc0-1.txt / missa/English/Tempora/ +# Pasc0-1.txt), same convention as easter-sunday.yml's own Update note -- +# the Office file's own Lectio1 only carries a bare incipit ("Et +# réliqua"), so the full pericope is pulled from the Mass propers for the +# same day, not guessed at. +# +# Single-nocturn source form (Duplex I classis cum Octava Privilegiata I +# collapses to 1 nocturn/3 lessons, same structural note as easter- +# sunday.yml) -- Lectio1's homily portion (incipit dropped) combined with +# Lectio2-3 into one continuous reading, same pattern used throughout this +# project's sweep. Responsory: the source's own [Responsory1] ("María +# Magdaléne, et áltera María") -- also reused verbatim by easter- +# octave.yml's own Nocturn 2, a genuine cross-reference already present in +# the source, not a duplication error. +id: easter-monday +readings: + - nocturn: 1 + isGospel: true + citation: { la: "Lucas 24:13-35", en: "Luke 24:13-35" } + text: + la: >- + In illo témpore: Duo ex discípulis Jesu ibant ipsa die in castéllum, quod erat in spátio + stadiórum sexagínta ab Jerúsalem, nómine Emmaus. Et ipsi loquebántur ad ínvicem de his + ómnibus, quæ accíderant. Et factum est, dum fabularéntur et secum quǽrerent: et ipse Jesus + appropínquans ibat cum illis: óculi autem illórum tenebántur, ne eum agnóscerent. Et ait ad + illos: Qui sunt hi sermónes, quos confértis ad ínvicem ambulántes, et estis tristes? Et + respóndens unus, cui nomen Cléophas, dixit ei: Tu solus peregrínus es in Jerúsalem, et non + cognovísti, quæ facta sunt in illa his diébus? Quibus ille dixit: Quæ? Et dixérunt: De Jesu + Nazaréno, qui fuit vir Prophéta potens in ópere et sermóne, coram Deo et omni pópulo: et + quómodo eum tradidérunt summi sacerdótes et príncipes nostri in damnatiónem mortis, et + crucifixérunt eum. Nos autem sperabámus, quia ipse esset redemptúrus Israël: et nunc super + hæc ómnia tértia dies est hódie, quod hæc facta sunt. Sed et mulíeres quædam ex nostris + terruérunt nos, quæ ante lucem fuérunt ad monuméntum, et, non invénto córpore ejus, venérunt, + dicéntes se étiam visiónem Angelórum vidísse, qui dicunt eum vívere. Et abiérunt quidam ex + nostris ad monuméntum: et ita invenérunt, sicut mulíeres dixérunt, ipsum vero non invenérunt. + Et ipse dixit ad eos: O stulti et tardi corde ad credéndum in ómnibus, quæ locúti sunt + Prophétæ! Nonne hæc opórtuit pati Christum, et ita intráre in glóriam suam? Et incípiens a + Móyse et ómnibus Prophétis, interpretabátur illis in ómnibus Scriptúris, quæ de ipso erant. + Et appropinquavérunt castéllo, quo ibant: et ipse se finxit lóngius ire. Et coëgérunt illum, + dicéntes: Mane nobiscum, quóniam advesperáscit et inclináta est jam dies. Et intrávit cum + illis. Et factum est, dum recúmberet cum eis, accépit panem, et benedíxit, ac fregit, et + porrigébat illis. Et apérti sunt óculi eórum, et cognovérunt eum: et ipse evánuit ex óculis + eórum. Et dixérunt ad ínvicem: Nonne cor nostrum ardens erat in nobis, dum loquerétur in via, + et aperíret nobis Scriptúras? Et surgéntes eádem hora regréssi sunt in Jerúsalem: et + invenérunt congregátas úndecim, et eos, qui cum illis erant, dicéntes: Quod surréxit Dóminus + vere, et appáruit Simóni. Et ipsi narrábant, quæ gesta erant in via: et quómodo cognovérunt + eum in fractióne panis. + en: >- + At that time, two of the disciples of Jesus went, the same day, to a town which was sixty + furlongs from Jerusalem, named Emmaus. And they talked together of all these things which + had happened. And it came to pass, that while they talked and reasoned with themselves, + Jesus himself also drawing near, went with them. But their eyes were held, that they should + not know Him. And He said to them: What are these discourses that you hold one with another + as you walk, and are sad? And the one of them, whose name was Cleophas, answering, said to + Him: Art thou only a stranger to Jerusalem, and hast not known the things that have been done + there in these days? To whom He said: What things? And they said: Concerning Jesus of + Nazareth, who was a prophet, mighty in work and word before God and all the people; And how + our chief priests and princes delivered Him to be condemned to death, and crucified Him. But + we hoped, that it was He that should have redeemed Israel: and now besides all this, today is + the third day since these things were done. Yea and certain women also of our company + affrighted us, who before it was light, were at the sepulchre, And not finding His body, + came, saying, that they had also seen a vision of angels, who say that He is alive. And some + of our people went to the sepulchre, and found it so as the women had said, but Him they + found not. Then He said to them: O foolish, and slow of heart to believe in all things which + the prophets have spoken. Ought not Christ to have suffered these things, and so to enter + into His glory? And beginning at Moses and all the prophets, He expounded to them in all the + scriptures, the things that were concerning Him. And they drew nigh to the town, whither they + were going: and He made as though He would go farther. But they constrained Him, saying: Stay + with us, because it is towards evening, and the day is now far spent. And He went in with + them. And it came to pass, whilst He was at table with them, He took bread, and blessed, and + brake, and gave to them. And their eyes were opened, and they knew Him: and He vanished out + of their sight. And they said one to the other: Was not our heart burning within us, whilst + He spoke in this way, and opened to us the scriptures? And rising up, the same hour, they + went back to Jerusalem: and they found the eleven gathered together, and those that were + staying with them, saying: The Lord is risen indeed, and hath appeared to Simon. And they + told what things were done in the way; and how they knew Him in the breaking of the bread. + status: { la: verified, en: verified } + + - nocturn: 1 + isGospel: false + source: "Pope St. Gregory the Great, Homily 23 on the Gospels" + text: + la: >- + Audístis, fratres caríssimi, quia duóbus discípulis ambulántibus in via, non quidem + credéntibus, sed tamen de se loquéntibus, Dóminus appáruit: sed eis spéciem, quam + recognóscerent, non osténdit. Hoc ergo egit foris Dóminus in óculis córporis, quod apud ipsos + agebátur intus in óculis cordis. Ipsi namque apud semetípsos intus et amábant, et dubitábant: + eis autem Dóminus foris et præsens áderat, et quis esset non ostendébat. De se ergo + loquéntibus præséntiam exhíbuit: sed de se dubitántibus cognitiónis suæ spéciem abscóndit. + + + Verba quidem cóntulit, durítiam intelléctus increpávit, sacræ Scriptúræ mystéria, quæ de + seípso erant, apéruit: et tamen quia adhuc in eórum córdibus peregrínus erat a fide, se ire + lóngius finxit. Fíngere namque, compónere dícimus: unde et compositóres luti, fígulos + vocámus. Nihil ergo simplex Véritas per duplicitátem fecit: sed talem se eis exhíbuit in + córpore, qualis apud illos erat in mente. Probándi autem erant, si hi, qui eum etsi necdum ut + Deum dilígerent, saltem ut peregrínum amáre potuíssent. + + + Sed quia esse extránei a caritáte non póterant hi, cum quibus Véritas gradiebátur: eum ad + hospítium quasi peregrínum vocant. Cur autem dícimus, vocant, cum illic scriptum sit: Et + coëgérunt eum? Ex quo nimírum exémplo collígitur, quia peregríni ad hospítium non solum + invitándi sunt, sed étiam trahéndi. Mensam ígitur ponunt, panes cibósque ófferunt: et Deum, + quem in Scriptúræ sacræ expositióne non cognóverant, in panis fractióne cognóscunt. Audiéndo + ergo præcépta Dei illumináti non sunt, faciéndo illumináti sunt: quia scriptum est: Non + auditóres legis justi sunt apud Deum, sed factóres legis justificabúntur. Quisquis ergo vult + audíta intellégere, festínet ea, quæ jam audíre pótuit, ópere implére. Ecce Dóminus non est + cógnitus dum loquerétur, et dignátus est cognósci, dum páscitur. + en: >- + Dearly beloved brethren, ye hear, how that while two of His disciples walked together in the + way, not believing in His Resurrection, but talking together concerning Him, the Lord + manifested Himself unto them, but yet held their eyes that they should not know Him. This + holding of the eyes of their body, wrought by the Lord, was a figure of the spiritual veil + which was yet upon the eyes of their heart. For in their heart they loved and yet doubted: + even as the Lord drew near to them outwardly, but showed not Who He was. To them that talked + together of Him, He revealed His immediate presence; but hid, from them that doubted, the + knowledge of His Person. + + + He spoke to them; He rebuked the hardness of their heart; He expounded unto them in all the + Scriptures the things concerning Himself: and, nevertheless, seeing that He was yet a + stranger to faith in their hearts, He made as though He would have gone further. These words, + He made as though He would, here seem to mean He feigned, but He Who is simple Truth doth + nothing with feigning: He only showed Himself to them in bodily manners, as He was towards + them spiritually; but they were put to the proof whether, though they loved Him not yet as + their God, they could love Him at least as a wayfarer. + + + But since it was impossible, that they with whom Truth walked, should be loveless, they asked + Him as a wayfarer to take of their hospitality. But why say we that they asked Him, when it + is written: And they constrained Him? From their example we learn that we ought not only to + bid, but also to urge, wayfarers to our hospitable entertainment. They laid a table + therefore, and set before Him bread and meat; and that God Whom they had not known in the + expounding of the Holy Scripture, they knew in the breaking of bread. In hearing the + commandments of God they were not enlightened, but they were enlightened in the doing of + them: as it is written: Not the hearers of the law are just before God, but the doers of the + law shall be justified. Whosoever therefore will understand that which he heareth, let him + make haste to practice in his works that which he hath already been able to hear. Behold, the + Lord was not known while He spake, but He was contented to be known when He broke bread. + responsory: + la: "R. María Magdaléne, et áltera María ibant dilúculo ad monuméntum: * Jesum quem quǽritis, non est hic, surréxit sicut locútus est, præcédet vos in Galilǽam, ibi eum vidébitis, allelúja, allelúja.\nV. Et valde mane una sabbatórum véniunt ad monuméntum, orto jam sole: et introëúntes vidérunt júvenem sedéntem in dextris, qui dixit illis.\nR. Jesum quem quǽritis, non est hic, surréxit sicut locútus est, præcédet vos in Galilǽam, ibi eum vidébitis, allelúja, allelúja." + en: "R. Mary Magdalene and the other Mary went very early to the sepulchre. * That Jesus whom ye seek, is not here: for He is risen, as He said: He goeth before you into Galilee; there shall ye see Him, alleluia, alleluia.\nV. And very early in the morning, the first day of the week, they came unto the sepulchre, at the rising of the sun; and, entering into the sepulchre, they saw a young man sitting upon the right side, who saith unto them:\nR. That Jesus Whom ye seek is not here: for He is risen, as He said: He goeth before you into Galilee: there shall ye see Him, alleluia, alleluia." + status: { la: verified, en: verified } diff --git a/src/data/propers/nocturn-readings/easter-saturday.yml b/src/data/propers/nocturn-readings/easter-saturday.yml new file mode 100644 index 0000000..5439603 --- /dev/null +++ b/src/data/propers/nocturn-readings/easter-saturday.yml @@ -0,0 +1,112 @@ +# Matins content for Saturday in Albis (temporalId easter-saturday, +# Pasc0-6 -- "Sabbato in Albis"). Sourced from web/www/horas/Latin/ +# Tempora/Pasc0-6.txt (Latin homily) / English/Tempora/Pasc0-6.txt +# (English homily); Gospel pericope from the Missal's own [Evangelium] +# (missa/Latin+English/Tempora/Pasc0-6.txt), same convention as +# easter-monday.yml. +# +# Single-nocturn source form, same structural note as easter-monday.yml. +# Lectio1's homily portion (incipit dropped) combined with Lectio2-3 into +# one continuous reading. Responsory: the source's own [Responsory1] +# ("Christus resúrgens ex mórtuis"). +id: easter-saturday +readings: + - nocturn: 1 + isGospel: true + citation: { la: "Joannes 20:1-9", en: "John 20:1-9" } + text: + la: >- + In illo témpore: Una sábbati, María Magdaléne venit mane, cum adhuc ténebræ essent, ad + monuméntum: et vidit lápidem sublátum a monuménto. Cucúrrit ergo, et venit ad Simónem Petrum, + et ad álium discípulum, quem amábat Jesus, et dicit illis: Tulérunt Dóminum de monuménto, et + nescímus, ubi posuérunt eum. Exiit ergo Petrus et ille álius discípulus, et venérunt ad + monuméntum. Currébant autem duo simul, et ille álius discípulus præcucúrrit cítius Petro, et + venit primus ad monuméntum. Et cum se inclinásset, vidit pósita linteámina, non tamen + introívit. Venit ergo Simon Petrus sequens eum, et introívit in monuméntum, et vidit + linteámina pósita, et sudárium, quod fúerat super caput ejus, non cum linteamínibus pósitum, + sed separátim involútum in unum locum. Tunc ergo introívit et ille discípulus, qui vénerat + primus ad monuméntum: et vidit et crédidit: nondum enim sciébant Scriptúram, quia oportébat + eum a mórtuis resúrgere. + en: >- + At that time, on the first day of the week, Mary Magdalen cometh early, when it was yet + dark, unto the sepulchre; and she saw the stone taken away from the sepulchre. She ran, + therefore, and cometh to Simon Peter, and to the other disciple whom Jesus loved, and saith + to them: They have taken away the Lord out of the sepulchre, and we know not where they have + laid Him. Peter therefore went out, and that other disciple, and they came to the sepulchre. + And they both ran together, and that other disciple did outrun Peter, and came first to the + sepulchre. And when he stooped down, he saw the linen cloths lying; but yet he went not in. + Then cometh Simon Peter, following him, and went into the sepulchre, and saw the linen + cloths lying, and the napkin that had been about His head, not lying with the linen cloths, + but apart, wrapped up into one place. Then that other disciple also went in, who came first + to the sepulchre: and he saw, and believed. For as yet they knew not the scripture, that He + must rise again from the dead. + status: { la: verified, en: verified } + + - nocturn: 1 + isGospel: false + source: "Pope St. Gregory the Great, Homily 22 on the Gospels" + text: + la: >- + Léctio sancti Evangélii, quam modo, fratres, audístis, valde in superfície histórica est + apérta: sed ejus nobis sunt mystéria sub brevitáte requirénda. María Magdaléne, cum adhuc + ténebræ essent, venit ad monuméntum. Juxta históriam notátur hora: juxta intelléctum vero + mýsticum, requiréntis signátur intellegéntia. María étenim auctórem ómnium, quem in carne + víderat mórtuum, quærébat in monuménto; et quia hunc mínime invénit, furátum crédidit. Adhuc + ergo erant ténebræ, cum venit ad monuméntum. Cucúrrit cítius, discípulis nuntiávit: sed illi + præ céteris cucurrérunt, qui præ céteris amavérunt, vidélicet Petrus et Joánnes. + + + Currébant autem duo simul: sed Joánnes præcucúrrit cítius Petro. Venit prior ad monuméntum, + et íngredi non præsúmpsit. Venit ergo postérior Petrus, et intrávit. Quid, fratres, quid + cursus signíficat? Numquid hæc tam subtílis Evangelístæ descríptio a mystériis vacáre + credénda est? Mínime. Neque enim se Joánnes et præísse, et non intrásse díceret, si in ipsa + sui trepidatióne mystérium defuísse credidísset. Quid ergo per Joánnem, nisi synagóga: quid + per Petrum, nisi Ecclésia designátur? + + + Nec mirum esse videátur, quod per juniórem synagóga, per seniórem vero Ecclésia signári + perhibétur: quia etsi ad Dei cultum prior est synagóga, quam Ecclésia géntium, ad usum tamen + sǽculi prior est multitúdo géntium, quam synagóga, Paulo attestánte, qui ait: Quia non prius + quod spiritále est, sed quod animále. Per seniórem ergo Petrum significátur Ecclésia géntium: + per juniórem vero Joánnem synagóga Judæórum. Currunt ambo simul: quia ab ortus sui témpore + usque ad occásum, pari et commúni via, etsi non pari et commúni sensu, gentílitas cum + synagóga cucúrrit. Venit synagóga prior ad monuméntum, sed mínime intrávit: quia legis quidem + mandáta percépit, prophetías de incarnatióne ac passióne Domínica audívit, sed crédere in + mórtuum nóluit. + en: >- + Dearly beloved brethren, the portion of the Holy Gospel which hath just now been read in + your ears, is exceeding simple on the face of it, which is its historical sense; but the + mystic sense, which underlieth that other, requireth from us a little searching. Mary + Magdalene came unto the Sepulchre when it was yet dark. The historic sense telleth us what + was the hour of day; the mystic sense, the state of her understanding who sought. Mary + Magdalene sought for Him, by Whom all things were made, and Whom she had seen die, as + concerning the flesh; she sought for Him, I say, in the grave, and finding Him not, she + believed that He had been stolen away. Yea, it was yet dark, when she came unto the + sepulchre. Then she ran and told the disciples, but they who had loved Him most, namely + Peter and John, did outrun the others. + + + So they ran both together, but John did outrun Peter, and came first to the Sepulchre, but + yet took he not upon himself to go in first. Then cometh Peter following him, and went in. + What, my brethren, what did the racing of these Apostles signify? Can we believe that the + description given by the deepest of the Evangelists is without a mystic interpretation? By + no means. John had never told how that he did outrun Peter, and yet went not into the + Sepulchre, if he had not believed that his hesitation veiled some mystery. What signifieth + John but the Synagogue? or Peter, but the Church? + + + Neither must ye take it as strange that the elder Apostle should represent the Church, and + the younger the Synagogue: for although the Synagogue was first to worship God, yet the herd + of Gentiles is in the world older than the Synagogue, as witnesseth Paul where he saith: That + was not first which is spiritual, but that which is natural. By Peter, then, who was the + elder, is signified the Church of the Gentiles; and by John, who was the younger, the + Synagogue of the Jews. They run both of them together, for from the time of her birth until + now, and so will it be until the end, the Church of the Gentiles hath run in a parallel road + and manywise a common road with the Synagogue, albeit not with equal understandings. The + Synagogue came first to the Sepulchre, but she hath not yet entered in; for, though she hath + received the commandments of the law, and hath heard the Prophets tell of the Incarnation and + Passion of the Lord, she will not believe in Him Who died for her. + responsory: + la: "R. Christus resúrgens ex mórtuis, jam non móritur, mors illi ultra non dominábitur: quod enim mórtuus est peccáto, mórtuus est semel: * Quod autem vivit, vivit Deo, allelúja, allelúja.\nV. Mórtuus est semel propter delícta nostra, et resurréxit propter justificatiónem nostram.\nR. Quod autem vivit, vivit Deo, allelúja, allelúja." + en: "R. Knowing that Christ rising again from the dead, dieth now no more, death shall no more have dominion over Him. For in that He died to sin, He died once: * In that He liveth, He liveth unto God, alleluia, alleluia.\nV. He died once for our sins, and He rose again for our justification.\nR. In that He liveth, He liveth unto God, alleluia, alleluia." + status: { la: verified, en: verified } diff --git a/src/data/propers/nocturn-readings/easter-thursday.yml b/src/data/propers/nocturn-readings/easter-thursday.yml new file mode 100644 index 0000000..eff1577 --- /dev/null +++ b/src/data/propers/nocturn-readings/easter-thursday.yml @@ -0,0 +1,104 @@ +# Matins content for Easter Thursday (temporalId easter-thursday, +# Pasc0-4 -- "Die V infra octavam Paschæ"). Sourced from web/www/horas/ +# Latin/Tempora/Pasc0-4.txt (Latin homily) / English/Tempora/Pasc0-4.txt +# (English homily); Gospel pericope from the Missal's own [Evangelium] +# (missa/Latin+English/Tempora/Pasc0-4.txt), same convention as +# easter-monday.yml. +# +# Single-nocturn source form, same structural note as easter-monday.yml. +# Lectio1's homily portion (incipit dropped) combined with Lectio2-3 into +# one continuous reading. Responsory: the source's own [Responsory1] +# ("Tulérunt Dóminum meum"). +id: easter-thursday +readings: + - nocturn: 1 + isGospel: true + citation: { la: "Joannes 20:11-18", en: "John 20:11-18" } + text: + la: >- + In illo témpore: María stabat ad monuméntum foris, plorans. Dum ergo fleret, inclinávit se et + prospéxit in monuméntum: et vidit duos Angelos in albis, sedéntes, unum ad caput et unum ad + pedes, ubi pósitum fúerat corpus Jesu. Dicunt ei illi: Múlier, quid ploras? Dicit eis: Quia + tulérunt Dóminum meum: et néscio, ubi posuérunt eum. Hæc cum dixísset, convérsa est retrórsum, + et vidit Jesum stantem: et non sciébat, quia Jesus est. Dicit ei Jesus: Múlier, quid ploras? + quem quæris? Illa exístimans, quia hortulánus esset, dicit ei: Dómine, si tu sustulísti eum, + dícito mihi, ubi posuísti eum: et ego eum tollam. Dicit ei Jesus: María. Convérsa illa, dicit + ei: Rabbóni - quod dícitur Magíster. - Dicit ei Jesus: Noli me tángere, nondum enim ascéndi ad + Patrem meum: vade autem ad fratres meos et dic eis: Ascéndo ad Patrem meum et Patrem vestrum, + Deum meum et Deum vestrum. Venit María Magdaléne annúntians discípulis: Quia vidi Dóminum, et + hæc dixit mihi. + en: >- + At that time, Mary stood at the sepulchre without, weeping. Now as she was weeping, she + stooped down, and looked into the sepulchre, And she saw two angels in white, sitting, one at + the head, and one at the feet, where the body of Jesus had been laid. They say to her: Woman, + why weepest thou? She saith to them: Because they have taken away my Lord; and I know not + where they have laid Him. When she had thus said, she turned herself back, and saw Jesus + standing; and she knew not that it was Jesus. Jesus saith to her: Woman, why weepest thou? + whom seekest thou? She, thinking it was the gardener, saith to Him: Sir, if thou hast taken + Him hence, tell me where thou hast laid Him, and I will take Him away. Jesus saith to her: + Mary. She turning, saith to Him: Rabboni — which is to say, Master. Jesus saith to her: Do + not touch Me, for I am not yet ascended to My Father. But go to My brethren, and say to them: + I ascend to My Father and to your Father, to My God and your God. Mary Magdalen cometh, and + telleth the disciples: I have seen the Lord, and these things He said to me. + status: { la: verified, en: verified } + + - nocturn: 1 + isGospel: false + source: "Pope St. Gregory the Great, Homily 25 on the Gospels" + text: + la: >- + María Magdaléne, quæ fúerat in civitáte peccátrix, amándo veritátem, lavit lácrimis máculas + críminis: et vox Veritátis implétur, qua dícitur: Dimíssa sunt ei peccáta multa, quia diléxit + multum. Quæ enim prius frígida peccándo remánserat, póstmodum amándo fórtiter ardébat. Nam + postquam venit ad monuméntum, ibíque corpus Domínicum non invénit, sublátum crédidit, atque + discípulis nuntiávit: qui veniéntes vidérunt, atque ita esse, ut múlier díxerat, credidérunt. + Et de eis prótinus scriptum est: Abiérunt ergo discípuli ad semetípsos: ac deínde subjúngitur: + María autem stabat ad monuméntum foris, plorans. + + + Qua in re pensándum est, hujus mulíeris mentem quanta vis amóris accénderat, quæ a monuménto + Dómini, étiam discípulis recedéntibus, non recedébat. Exquirébat quem non invénerat: flebat + inquírendo, et amóris sui igne succénsa, ejus, quem ablátum crédidit, ardébat desidério. Unde + cóntigit, ut eum sola tunc vidéret, quæ remánserat ut quǽreret: quia nimírum virtus boni + óperis, perseverántia est: et voce Veritátis dícitur: Qui autem perseveráverit usque in finem, + hic salvus erit. + + + María ergo cum fleret, inclinávit se, et prospéxit in monuméntum. Certe jam monuméntum + vácuum víderat, jam sublátum Dóminum nuntiáverat: quid est, quod se íterum inclínat, íterum + vidére desíderat? Sed amánti semel aspexísse non súfficit: quia vis amóris intentiónem + multíplicat inquisitiónis. Quæsívit ergo prius, et mínime invénit: perseverávit ut quǽreret, + unde et cóntigit, ut inveníret: actúmque est, ut desidéria diláta créscerent, et crescéntia + cáperent quod inveníssent. + en: >- + Mary Magdalene, a woman in the city, who was a sinner, through love of the truth washed away + by her tears the befoulment of her sin, and the word of the Truth was fulfilled which He + spake: Her sins, which are many, are forgiven: for she loved much. She that had remained cold + while she sinned, became burning when she loved. For after that she had been to the + Sepulchre, and had not found there the Body of the Lord, and had believed that it had been + taken away, and had told His disciples, they came and saw, and thought it was even as the + woman had said, and it is written: Then the disciples went away again unto their own home, + but Mary stood without at the sepulchre, weeping. + + + In connection with this matter, we ought to ponder what great store of love there was in + that woman's heart, who, when even His disciples were gone away, could not tear herself from + the grave of the Lord. She sought Him Whom she had not found there, and as she sought, she + wept, and the fire of love in her heart yearned after Him, Who she believed had been taken + away. And so it came to pass that she, who had lingered to seek Him, was the only one who + then saw Him, since the back-bone of a good work is endurance, and the voice of the Truth + Himself hath said: He that endureth to the end shall be saved. + + + As Mary wept there, she stooped down and looked into the Sepulchre. It was but a little + while and she had seen how the Sepulchre was empty, and had told that the Lord was taken + away. Why then should she stoop down and look in again? But she loved Him so well, that one + look was not enough; the energy of her affection constrained her to search again and again. + She began by searching and not finding; but she endured in her search, and, behold, it came + to pass that she found. And this was done that our own longings for Christ's presence might + be taught to expand, and know that as they expand they will meet with Him to Whom they + aspire. + responsory: + la: "R. Tulérunt Dóminum meum, et néscio ubi posuérunt eum. Dicunt ei Angeli: Múlier, quid ploras? surréxit sicut dixit: * Præcédet vos in Galilǽam: ibi eum vidébitis, allelúja, allelúja.\nV. Cum ergo fleret, inclinávit se, et prospéxit in monuméntum: et vidit duos Angelos in albis, sedéntes, qui dicunt ei.\nR. Præcédet vos in Galilǽam: ibi eum vidébitis, allelúja, allelúja." + en: "R. They have taken away my Lord, and I know not where they have laid Him. The Angels say unto her: Woman, why weepest thou? He is risen, as He said. * He goeth before you into Galilee; there shall ye see Him, alleluia, alleluia.\nV. And as she wept, she stooped down and looked into the Sepulchre, and saw two Angels in white, sitting; and they say unto her:\nR. He goeth before you into Galilee; there shall ye see Him, alleluia, alleluia." + status: { la: verified, en: verified } diff --git a/src/data/propers/nocturn-readings/easter-tuesday.yml b/src/data/propers/nocturn-readings/easter-tuesday.yml new file mode 100644 index 0000000..9b2b53c --- /dev/null +++ b/src/data/propers/nocturn-readings/easter-tuesday.yml @@ -0,0 +1,123 @@ +# Matins content for Easter Tuesday (temporalId easter-tuesday, Pasc0-2 -- +# "Die III infra octavam Paschæ"). Sourced from web/www/horas/Latin/ +# Tempora/Pasc0-2.txt (Latin homily) / English/Tempora/Pasc0-2.txt +# (English homily); Gospel pericope from the Missal's own [Evangelium] +# (missa/Latin+English/Tempora/Pasc0-2.txt), same convention as +# easter-monday.yml. +# +# Single-nocturn source form, same structural note as easter-monday.yml. +# Lectio1's homily portion (incipit dropped) combined with Lectio2-3 into +# one continuous reading. Responsory: the source's own [Responsory1] +# ("Virtúte magna reddébant Apóstoli"). +id: easter-tuesday +readings: + - nocturn: 1 + isGospel: true + citation: { la: "Lucas 24:36-47", en: "Luke 24:36-47" } + text: + la: >- + In illo témpore: Stetit Jesus in médio discipulórum suórum et dicit eis: Pax vobis: ego sum, + nolíte timére. Conturbáti vero et contérriti, existimábant se spíritum vidére. Et dixit eis: + Quid turbáti estis, et cogitatiónes ascéndunt in corda vestra? Vidéte manus meas et pedes, + quia ego ipse sum: palpáte et vidéte: quia spíritus carnem et ossa non habet, sicut me vidétis + habére. Et cum hoc dixísset, osténdit eis manus et pedes. Adhuc autem illis non credéntibus et + mirántibus præ gáudio, dixit: Habétis hic aliquid, quod manducétur? At illi obtulérunt ei + partem piscis assi et favum mellis. Et cum manducásset coram eis, sumens relíquias, dedit eis. + Et dixit ad eos: Hæc sunt verba, quæ locútus sum ad vos, cum adhuc essem vobíscum, quóniam + necésse est impléri ómnia, quæ scripta sunt in lege Móysi et Prophétis et Psalmis de me. Tunc + apéruit illis sensum, ut intellégerent Scriptúras. Et dixit eis: Quóniam sic scriptum est, et + sic oportébat Christum pati, et resúrgere a mórtuis tértia die: et prædicári in nómine ejus + pœniténtiam, et remissiónem peccatórum in omnes gentes. + en: >- + At that time, Jesus stood in the midst of them, and saith to them: Peace be to you; it is I, + fear not. But they being troubled and frightened, supposed that they saw a spirit. And He + said to them: Why are you troubled, and why do thoughts arise in your hearts? See My hands + and feet, that it is I Myself; handle, and see: for a spirit hath not flesh and bones, as you + see Me to have. And when He had said this, He showed them His hands and feet. But while they + yet believed not, and wondered for joy, He said: Have you any thing to eat? And they offered + Him a piece of a broiled fish, and a honeycomb. And when He had eaten before them, taking the + remains, He gave to them. And He said to them: These are the words which I spoke to you, + while I was yet with you, that all things must needs be fulfilled, which are written in the + law of Moses, and in the prophets, and in the psalms, concerning Me. Then He opened their + understanding, that they might understand the scriptures. And He said to them: Thus it is + written, and thus it behoved Christ to suffer, and to rise again from the dead, the third + day: And that penance and remission of sins should be preached in His name, unto all nations, + beginning at Jerusalem. And you are witnesses of these things. + status: { la: verified, en: verified } + + - nocturn: 1 + isGospel: false + source: "St. Ambrose, Bishop of Milan, Book 10, Commentary on Luke 24" + text: + la: >- + Mirum, quo modo se natúra corpórea per impenetrábile corpus infúderit invisíbili áditu, + visíbili conspéctu: tangi fácilis, diffícilis æstimári. Dénique conturbáti discípuli + æstimábant se spíritum vidére. Et ídeo Dóminus, ut spéciem nobis resurrectiónis osténderet: + Palpáte, inquit, et vidéte, quia spíritus carnem et ossa non habet, sicut me vidétis habére. + Non ergo per incorpóream natúram, sed per resurrectiónis qualitátem, impérvia usu clausa + penetrávit. Nam quod tángitur, corpus est: quod palpátur, corpus est. + + + In córpore autem resurgémus. Seminátur enim corpus animále, surgit corpus spiritále: sed + illud subtílius, hoc crássius, útpote adhuc terrénæ labis qualitáte concrétum. Nam quómodo + non corpus, in quo manébant insígnia vúlnerum, vestígia cicatrícum, quæ Dóminus palpánda + óbtulit? In quo non solum fidem firmat, sed étiam devotiónem ácuit, quod vúlnera suscépta pro + nobis cælo inférre máluit, abolére nóluit: ut Deo Patri nostræ prétia libertátis osténderet. + Talem sibi Pater ad déxteram locat, trophǽum nostræ salútis ampléctens: tales illic Mártyres + nobis cicatrícis suæ coróna monstrávit. + + + Et quóniam sermo huc noster evásit, considerémus qua grátia secúndum Joánnem credíderint + Apóstoli, qui gavísi sunt; secúndum Lucam quasi incréduli redarguántur: ibi Spíritum Sanctum + accéperint, hic sedére in civitáte jubeántur, quoadúsque induántur virtúte ex alto. Et vidétur + mihi ille quasi Apóstolus majóra et altióra tetigísse, hic sequéntia et humánis próxima: hic + histórico usus circúitu, ille compéndio: quia et de illo dubitári non potest, qui testimónium + pérhibet de iis, quibus ipse intérfuit, et verum est testimónium ejus: et ab hoc quoque, qui + Evangelísta esse méruit, vel negligéntiæ, vel mendácii suspiciónem æquum est propulsári. Et + ídeo verum putámus utrúmque, non sententiárum varietáte, nec personárum diversitáte + distínctum. Nam etsi primo Lucas eos non credidísse dicat, póstea tamen credidísse + demónstrat: et si prima considerémus, contrária sunt: si sequéntia, certum est conveníre. + en: >- + We see here the marvelous nature of the Lord's glorified Body. It could enter unseen, and + then become seen. It could easily be touched, but Its nature is hard to understand. The + disciples were affrighted, and supposed that they had seen a spirit. And therefore the Lord, + that He might show us the evidence of His Resurrection, said: Handle Me, and see; for a + spirit hath not flesh and bones as ye see Me have. Therefore it was not by being in a + disembodied state, but by the peculiar qualities of the risen and glorified Body that He had + passed through closed doors. For that which is touched or handled is a body. + + + We shall all rise again with our bodies. But it is sown a natural body; it is raised a + spiritual body. The spiritual body is the finer, and the natural body is the grosser, + besodden as yet by the corruption of earth. Was not that a real Body, wherein remained those + marks of His Wounds, those holes of the nail-prints, which the Lord bade His disciples to + handle? Hereby, also, He hath not only strengthened our faith, but also quickened our love, + since we know that it has been His will to carry to heaven those Wounds which He bore for our + sake, and wherewith He would not make away; but plainly showeth to His Eternal Father the + price of our freedom. It is as marked with these Wounds and embracing the trophy of our + salvation that the Father hath said to Him, Sit Thou at My right Hand: and it is, like Him, + marked with their wounds, that He hath shown us that the Martyrs, whose Crown He is, are, and + will be with Him there. + + + And now, since our Lesson from Luke here faileth, let us have recourse to John, and consider + how that, according to him, then were the disciples glad when they saw the Lord, and received + the grace of faith. According to Luke, He upbraided them with their unbelief, but according + to John He said also, Receive ye the Holy Ghost. Luke, not John, hath, Tarry ye in the city of + Jerusalem, until ye be endued with power from on high. Indeed, to me it seemeth as though the + one Evangelist had busied himself with the greater and higher matters, and the other with the + narrative, and such things as are more human: the one with the course, the other with the + essence, of history. For as it is impossible to doubt the word of him who testifieth of these + things, and who saw these things, and concerning whom we know that his testimony is true, so + is it sinful to think of negligence or falsehood as attaching to the other, even Luke, who + earned to himself to be an Evangelist, albeit he was not an Apostle, and therefore we hold + that both are truthful, neither are they at variance one with the other, either in the + difference of the words they use, or in the sacredness of their characters as Evangelists. + For though Luke saith that at the first the Apostles believed not, yet he showeth that + afterward they believed: and although, if we regard only the first fact, the Evangelists seem + divergent one from the other, yet, when we consider what cometh afterward, we see that they + are at one. + responsory: + la: "R. Virtúte magna reddébant Apóstoli, * Testimónium resurrectiónis Jesu Christi Dómini nostri, allelúja, allelúja.\nV. Repléti quidem Spíritu Sancto loquebántur cum fidúcia verbum Dei.\nR. Testimónium resurrectiónis Jesu Christi Dómini nostri, allelúja, allelúja." + en: "R. With great power gave the Apostles * witness of the Resurrection of our Lord Jesus Christ, alleluia, alleluia.\nV. They were all filled with the Holy Ghost, and they spoke the Word of God with boldness.\nR. Witness of the Resurrection of our Lord Jesus Christ, alleluia, alleluia." + status: { la: verified, en: verified } diff --git a/src/data/propers/nocturn-readings/easter-wednesday.yml b/src/data/propers/nocturn-readings/easter-wednesday.yml new file mode 100644 index 0000000..119d8db --- /dev/null +++ b/src/data/propers/nocturn-readings/easter-wednesday.yml @@ -0,0 +1,118 @@ +# Matins content for Easter Wednesday (temporalId easter-wednesday, +# Pasc0-3 -- "Die IV infra octavam Paschæ"). Sourced from web/www/horas/ +# Latin/Tempora/Pasc0-3.txt (Latin homily) / English/Tempora/Pasc0-3.txt +# (English homily); Gospel pericope from the Missal's own [Evangelium] +# (missa/Latin+English/Tempora/Pasc0-3.txt), same convention as +# easter-monday.yml. +# +# Single-nocturn source form, same structural note as easter-monday.yml. +# Lectio1's homily portion (incipit dropped) combined with Lectio2-3 into +# one continuous reading. Responsory: the source's own [Responsory1] +# ("Ecce vicit leo de tribu Juda"). +id: easter-wednesday +readings: + - nocturn: 1 + isGospel: true + citation: { la: "Joannes 21:1-14", en: "John 21:1-14" } + text: + la: >- + In illo témpore: Manifestávit se íterum Jesus discípulis ad mare Tiberíadis. Manifestávit + autem sic. Erant simul Simon Petrus et Thomas, qui dícitur Dídymus, et Nathánaël, qui erat a + Cana Galilǽæ, et fílii Zebedǽi et álii ex discípulis ejus duo. Dicit eis Simon Petrus: Vado + piscári. Dicunt ei: Venímus et nos tecum. Et exiérunt et ascendérunt in navim: et illa nocte + nihil prendidérunt. Mane autem facto, stetit Jesus in lítore: non tamen cognovérunt discípuli, + quia Jesus est. Dixit ergo eis Jesus: Púeri, numquid pulmentárium habétis? Respondérunt ei: + Non. Dicit eis: Míttite in déxteram navígii rete, et inveniétis. Misérunt ergo: et jam non + valébant illud tráhere præ multitúdine píscium. Dixit ergo discípulus ille, quem diligébat + Jesus, Petro: Dóminus est. Simon Petrus cum audísset, quia Dóminus est, túnica succínxit se - + erat enim nudus, - et misit se in mare. Alii autem discípuli navígio venérunt - non enim longe + erant a terra, sed quasi cúbitis ducéntis, - trahéntes rete píscium. Ut ergo descendérunt in + terram, vidérunt prunas pósitas, et piscem superpósitum, et panem. Dicit eis Jesus: Afférte de + píscibus, quos prendidístis nunc. Ascéndit Simon Petrus, et traxit rete in terram, plenum + magnis píscibus centum quinquagínta tribus. Et cum tanti essent, non est scissum rete. Dicit + eis Jesus: Veníte, prandéte. Et nemo audébat discumbéntium interrogáre eum: Tu quis es? + sciéntes, quia Dóminus est. Et venit Jesus, et áccipit panem, et dat eis, et piscem + simíliter. Hoc jam tértio manifestátus est Jesus discípulis suis, cum resurrexísset a mórtuis. + en: >- + At that time, Jesus showed Himself again to the disciples at the sea of Tiberias. And He + showed Himself after this manner. There were together Simon Peter, and Thomas, who is called + Didymus, and Nathanael, who was of Cana of Galilee, and the sons of Zebedee, and two others of + His disciples. Simon Peter saith to them: I go a fishing. They say to him: We also come with + thee. And they went forth, and entered into the ship: and that night they caught nothing. But + when the morning was come, Jesus stood on the shore: yet the disciples knew not that it was + Jesus. Jesus therefore said to them: Children, have you any meat? They answered Him: No. He + saith to them: Cast the net on the right side of the ship, and you shall find. They cast + therefore; and now they were not able to draw it, for the multitude of fishes. That disciple + therefore whom Jesus loved, said to Peter: It is the Lord. Simon Peter, when he heard that it + was the Lord, girt his coat about him — for he was naked — and cast himself into the sea. But + the other disciples came in the ship — for they were not far from the land, but as it were + two hundred cubits — dragging the net with fishes. As soon then as they came to land, they saw + hot coals lying, and a fish laid thereon, and bread. Jesus saith to them: Bring hither of the + fishes which you have now caught. Simon Peter went up, and drew the net to land, full of + great fishes, one hundred and fifty-three. And although there were so many, the net was not + broken. Jesus saith to them: Come, and dine. And none of them who were at meat, durst ask + Him: Who art thou? knowing that it was the Lord. And Jesus cometh and taketh bread, and giveth + them, and fish in like manner. This is now the third time that Jesus was manifested to His + disciples, after He was risen from the dead. + status: { la: verified, en: verified } + + - nocturn: 1 + isGospel: false + source: "Pope St. Gregory the Great, Homily 24 on the Gospels" + text: + la: >- + Dilectíssimi fratres, léctio sancti Evangélii, quæ modo in áuribus vestris lecta est, + quæstióne ánimum pulsat, sed pulsatióne sua vim discretiónis índicat. Quæri étenim potest, cur + Petrus, qui piscátor ante conversiónem fuit, post conversiónem ad piscatiónem rédiit: et cum + Véritas dicat: Nemo mittens manum suam ad arátrum, et aspíciens retro, aptus est regno Dei: + cur repétiit quod derelíquit? Sed si virtus discretiónis inspícitur, cítius vidétur: quia + nimírum negótium, quod ante conversiónem sine peccáto éxstitit, hoc étiam post conversiónem + repétere culpa non fuit. + + + Nam piscatórem Petrum, Matthǽum vero teloneárium scimus: et post conversiónem suam ad + piscatiónem Petrus rédiit, Matthǽus vero ad telónei negótium non resédit: quia áliud est + victum per piscatiónem quǽrere, áliud autem telónei lucris pecúnias augére. Sunt enim pléraque + negótia, quæ sine peccátis exhibéri aut vix, aut nullátenus possunt. Quæ ergo ad peccátum + ímplicant, ad hæc necésse est, ut post conversiónem ánimus non recúrrat. + + + Quæri étiam potest, cur discípulis in mari laborántibus, post resurrectiónem suam Dóminus in + líttore stetit, qui ante resurrectiónem suam coram discípulis in flúctibus maris ambulávit. + Cujus rei rátio festíne cognóscitur, si ipsa, quæ tunc ínerat, causa pensétur. Quid enim mare, + nisi præsens sǽculum signat, quod se cásuum tumúltibus, et undis vitæ corruptíbilis illídit? + Quid per soliditátem líttoris, nisi illa perpetúitas quiétis ætérnæ figurátur? Quia ergo + discípuli adhuc flúctibus mortális vitæ ínerant, in mari laborábant: quia autem Redémptor + noster jam corruptiónem carnis excésserat, post resurrectiónem suam in líttore stabat. + en: >- + Dearly beloved brethren, the portion of the Holy Gospel which hath but now been read in your + ears, knocketh loudly at the door of your heart, with a certain question, the answer whereto + calleth for thought. This same question is: Wherefore did Peter, who had before his + conversion been a fisher, wherefore did he, after his conversion, again go a-fishing? since + the Truth hath said: No man, having put his hand to the plough, and looking back, is fit for + the kingdom of God? Wherefore did Peter return to that which he had left? But we thought we + see the answer to his question. The trade which was harmless before his conversion, did not + become harmful because he had been converted. + + + We know that Peter had been a fisherman, and Matthew a publican, and that Peter after his + conversion went back to his fishing, but Matthew did not return to the receipt of custom. It + is one thing to seek a livelihood by fishing, and another to amass money by farming of taxes. + There are many kinds of business in which it is difficult or impossible to be engaged without + committing sin, and to such kinds of business as these, he which hath once been converted + must not again betake himself. + + + It may likewise be asked why, when the disciples were toiling in the sea, the Lord, after His + Resurrection, stood on the shore, whereas, before His Resurrection, He had walked on the + waves before them all. The reason of this is quickly known if we will think of the end which + it then served. The sea is a figure of this present world, tossed to and fro by changing + fortune, and continually ebbing and flowing with the diverse tides of life. The stableness of + the shore is an image of the never-ending rest of the eternal home. The disciples therefore, + for that they were yet tossed to and fro upon the waves of a dying life, were toiling in the + sea, but He our Redeemer, Who had already laid aside that which in this body is subject to + corruption, and had risen again from the dead, He stood upon the shore. + responsory: + la: "R. Ecce vicit leo de tribu Juda, radix David, aperíre librum, et sólvere septem signácula ejus: * Allelúja, allelúja, allelúja.\nV. Dignus est Agnus, qui occísus est, accípere virtútem, et divinitátem, et sapiéntiam, et fortitúdinem, et honórem, et glóriam, et benedictiónem.\nR. Allelúja, allelúja, allelúja." + en: "R. Behold, the Lion of the tribe of Judah, the Root of David, hath prevailed to open the Book, and to loose the seven seals thereof. * Alleluia, alleluia, alleluia.\nV. Worthy is the Lamb That was slain to receive power, and riches, and wisdom, and strength, and honour, and glory, and blessing.\nR. Alleluia, alleluia, alleluia." + status: { la: verified, en: verified } diff --git a/src/data/propers/temporal/easter-friday-collect.yml b/src/data/propers/temporal/easter-friday-collect.yml new file mode 100644 index 0000000..649c8ab --- /dev/null +++ b/src/data/propers/temporal/easter-friday-collect.yml @@ -0,0 +1,19 @@ +# Transcribed directly from the reference engine's own Office file +# (web/www/horas/Latin/Tempora/Pasc0-5.txt's [Oratio], English parallel in +# web/www/horas/English/Tempora/Pasc0-5.txt). See easter-monday-collect.yml's +# own header for sourcing/status convention. +id: easter-friday-collect +text: + la: | + Orémus. + Omnípotens sempitérne Deus, qui paschále sacraméntum in reconciliatiónis humánæ fœ́dere contulísti: da méntibus nostris; ut quod professióne celebrámus, imitémur efféctu. + Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti Deus, per ómnia sǽcula sæculórum. + R. Amen. + en: | + Let us pray. + Almighty and eternal God, Who in the Easter sacrament hast instituted the covenant whereby thou forgavest mankind: grant to our souls, that what we outwardly profess we may show forth in our deeds. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: draft + en: draft diff --git a/src/data/propers/temporal/easter-monday-collect.yml b/src/data/propers/temporal/easter-monday-collect.yml new file mode 100644 index 0000000..29dd59d --- /dev/null +++ b/src/data/propers/temporal/easter-monday-collect.yml @@ -0,0 +1,23 @@ +# Transcribed directly from the reference engine's own Office file +# (web/www/horas/Latin/Tempora/Pasc0-1.txt's [Oratio], English parallel in +# web/www/horas/English/Tempora/Pasc0-1.txt) -- not the Missal track, but +# the same collect either way (Easter Monday's proper is identical +# Office/Mass). Marked `draft`, not `verified`, per this repo's convention +# for a direct transcription without a live Divine-Office-engine +# cross-check. "$Per Dominum" expanded from Ordo/Prayers.txt's own [Per +# Dominum] macro. +id: easter-monday-collect +text: + la: | + Orémus. + Deus, qui solemnitáte pascháli, mundo remédia contulísti: pópulum tuum, quǽsumus, cælésti dono proséquere; ut et perféctam libertátem cónsequi mereátur, et ad vitam profíciat sempitérnam. + Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti Deus, per ómnia sǽcula sæculórum. + R. Amen. + en: | + Let us pray. + O God, Who dost heal the sick world by the solemn gladness of the Passover, continue, we beseech thee, to pour forth thine heavenly gifts upon thy people, till the same shall bring them into perfect liberty, and finally avail them unto life everlasting. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: draft + en: draft diff --git a/src/data/propers/temporal/easter-saturday-collect.yml b/src/data/propers/temporal/easter-saturday-collect.yml new file mode 100644 index 0000000..09701af --- /dev/null +++ b/src/data/propers/temporal/easter-saturday-collect.yml @@ -0,0 +1,19 @@ +# Transcribed directly from the reference engine's own Office file +# (web/www/horas/Latin/Tempora/Pasc0-6.txt's [Oratio], English parallel in +# web/www/horas/English/Tempora/Pasc0-6.txt). See easter-monday-collect.yml's +# own header for sourcing/status convention. +id: easter-saturday-collect +text: + la: | + Orémus. + Concéde, quǽsumus, omnípotens Deus: ut, qui festa paschália venerándo égimus, per hæc contíngere ad gáudia ætérna mereámur. + Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti Deus, per ómnia sǽcula sæculórum. + R. Amen. + en: | + Let us pray. + Grant, we beseech thee, O Almighty God, that we who have kept worshipfully the Easter solemnities, may at last worthily pass from keeping Feasts unto thee here to the everlasting jubilation hereafter. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: draft + en: draft diff --git a/src/data/propers/temporal/easter-thursday-collect.yml b/src/data/propers/temporal/easter-thursday-collect.yml new file mode 100644 index 0000000..2a7be3b --- /dev/null +++ b/src/data/propers/temporal/easter-thursday-collect.yml @@ -0,0 +1,19 @@ +# Transcribed directly from the reference engine's own Office file +# (web/www/horas/Latin/Tempora/Pasc0-4.txt's [Oratio], English parallel in +# web/www/horas/English/Tempora/Pasc0-4.txt). See easter-monday-collect.yml's +# own header for sourcing/status convention. +id: easter-thursday-collect +text: + la: | + Orémus. + Deus, qui diversitátem géntium in confessióne tui nóminis adunásti: da, ut renátis fonte baptísmatis una sit fides méntium et píetas actiónum. + Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti Deus, per ómnia sǽcula sæculórum. + R. Amen. + en: | + Let us pray. + O God, Who dost make all nations, how diverse soever they be, to become one family in giving of praise to thy Name, grant unto all them that are born again in the fountain of baptism to live ever in oneness of faith, and godliness of works. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: draft + en: draft diff --git a/src/data/propers/temporal/easter-tuesday-collect.yml b/src/data/propers/temporal/easter-tuesday-collect.yml new file mode 100644 index 0000000..7e24898 --- /dev/null +++ b/src/data/propers/temporal/easter-tuesday-collect.yml @@ -0,0 +1,19 @@ +# Transcribed directly from the reference engine's own Office file +# (web/www/horas/Latin/Tempora/Pasc0-2.txt's [Oratio], English parallel in +# web/www/horas/English/Tempora/Pasc0-2.txt). See easter-monday-collect.yml's +# own header for sourcing/status convention. +id: easter-tuesday-collect +text: + la: | + Orémus. + Deus, qui Ecclésiam tuam novo semper fœtu multíplicas: concéde fámulis tuis; ut sacraméntum vivéndo téneant, quod fide percepérunt. + Per Dóminum nostrum Jesum Christum, Fílium tuum: qui tecum vivit et regnat in unitáte Spíritus Sancti Deus, per ómnia sǽcula sæculórum. + R. Amen. + en: | + Let us pray. + O God, Who art ever multiplying the Children of thy Church, grant unto the same thy servants that they may lead the rest of their lives according to this beginning wherein Thou hast given them faith to receive the Sacrament of the New Birth. + Through Jesus Christ, thy Son our Lord, Who liveth and reigneth with thee, in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: draft + en: draft diff --git a/src/data/propers/temporal/easter-wednesday-collect.yml b/src/data/propers/temporal/easter-wednesday-collect.yml new file mode 100644 index 0000000..7015c07 --- /dev/null +++ b/src/data/propers/temporal/easter-wednesday-collect.yml @@ -0,0 +1,20 @@ +# Transcribed directly from the reference engine's own Office file +# (web/www/horas/Latin/Tempora/Pasc0-3.txt's [Oratio], English parallel in +# web/www/horas/English/Tempora/Pasc0-3.txt; "$Per eumdem" expanded from +# Ordo/Prayers.txt's own [Per eumdem] macro). See easter-monday-collect.yml's +# own header for sourcing/status convention. +id: easter-wednesday-collect +text: + la: | + Orémus. + Deus, qui nos resurrectiónis Domínicæ ánnua solemnitáte lætíficas: concéde propítius; ut per temporália festa quæ ágimus, perveníre ad gáudia ætérna mereámur. + Per eúndem Dóminum nostrum Jesum Christum Fílium tuum, qui tecum vivit et regnat in unitáte Spíritus Sancti, Deus, per ómnia sǽcula sæculórum. + R. Amen. + en: | + Let us pray. + O God, Who dost every year fill us with holy gladness for the rising-again of the Lord, mercifully grant that these Feast-days which we are now keeping here in time, may be to us a mean whereby in the end we may worthily attain unto those pleasures which are at thy right hand for evermore. + Through the same Jesus Christ, thy Son, Our Lord, Who liveth and reigneth with thee in the unity of the Holy Ghost, God, world without end. + R. Amen. +status: + la: draft + en: draft diff --git a/src/hours/matins.ts b/src/hours/matins.ts index f9b6769..0eb6e9f 100644 --- a/src/hours/matins.ts +++ b/src/hours/matins.ts @@ -1092,18 +1092,24 @@ export function resolveOrdo(date: string): ResolvedOrdo { // authored yet, same "eligible, not content-gated" convention every // other per-feast override in this app already uses (see // hours/resolve-common.ts's getOfficeOverrideId) — or a temporal winner - // with its own named override (2026-09-02, e.g. Easter Monday/Tuesday - // reusing Easter Sunday's own entry; see `hasTemporalNamedOverride` - // below). Unlike the sanctoral case, a plain temporal id is NOT - // eligible just by existing — only one with an authored entry in - // `sundayNamedOverrides` is, since ordinary temporal ferias/Sundays - // already have their own correct path and shouldn't suddenly gain 3 - // nocturns. Deliberately a separate check from `isDoubleOrHigher` - // (antiphon.ts) — that function drives the unrelated antiphon-doubling - // rule (full vs. incipit antiphon before the psalms) and stays floored - // at Duplex; the two thresholds only coincided before this change by - // accident, not by shared meaning. - const temporalNamedOverride = winner.kind === 'temporal' ? sundayNamedOverrides[winner.id] : undefined; + // whose *governing week* (`temporalId`, not `winner.id`) has its own + // named override (2026-09-02, e.g. Easter Monday/Tuesday reusing Easter + // Sunday's own entry; see `hasTemporalNamedOverride` below). Keyed by + // `temporalId` rather than `winner.id` since 2026-09-06: Easter week's + // 6 weekdays each got their own real `temporal-feasts` record (`winner.id` + // is now `easter-monday`/`easter-tuesday`/...), but they still all share + // one governing-week content pool (`temporalId`, always `easter-sunday` + // for the whole octave) — matching `sundayNocturnFor`'s own lookup a few + // lines up, which already keyed by `temporalId` for exactly this reason. + // Unlike the sanctoral case, a plain temporal id is NOT eligible just by + // existing — only one with an authored entry in `sundayNamedOverrides` + // is, since ordinary temporal ferias/Sundays already have their own + // correct path and shouldn't suddenly gain 3 nocturns. Deliberately a + // separate check from `isDoubleOrHigher` (antiphon.ts) — that function + // drives the unrelated antiphon-doubling rule (full vs. incipit antiphon + // before the psalms) and stays floored at Duplex; the two thresholds + // only coincided before this change by accident, not by shared meaning. + const temporalNamedOverride = winner.kind === 'temporal' ? sundayNamedOverrides[temporalId] : undefined; const hasTemporalNamedOverride = temporalNamedOverride !== undefined && (temporalNamedOverride.weekdays === undefined || temporalNamedOverride.weekdays.includes(day.weekday)); const threeNocturns = diff --git a/src/hours/resolve-common.ts b/src/hours/resolve-common.ts index 1c5cf14..a9911d9 100644 --- a/src/hours/resolve-common.ts +++ b/src/hours/resolve-common.ts @@ -113,6 +113,21 @@ export const ALWAYS_OVERRIDE_TEMPORAL_IDS = new Set([ 'maundy-thursday', 'good-friday', 'holy-saturday', + // Easter's own octave: Monday-Saturday of Easter week each have their + // own real identity now (see calendar/movable-feasts.ts's anchor-based + // override, offsets 1-6) — same "does this id carry its own real + // office" reasoning as the Passiontide batch above. `easter-sunday` + // itself needs no entry here (it's not one of these movable-feast + // records; `resolveOfficeWinner` only ever sees it as a plain + // `resolveTemporalId` fallback target, which every one of these six + // falls back to via `getTemporalProperWithFallback` whenever a given + // kind isn't authored for the specific weekday). + 'easter-monday', + 'easter-tuesday', + 'easter-wednesday', + 'easter-thursday', + 'easter-friday', + 'easter-saturday', ]); /** diff --git a/tests/calendar/april-sanctoral.test.ts b/tests/calendar/april-sanctoral.test.ts index 9d5099a..f440265 100644 --- a/tests/calendar/april-sanctoral.test.ts +++ b/tests/calendar/april-sanctoral.test.ts @@ -34,8 +34,19 @@ describe('April sanctoral pull (first pass)', () => { // candidate in 2030's own backlog, so he lands the 1st day after Low // Sunday (Apr 28 that year) outright. const native = resolveDay('2030-04-25'); - expect(native.winner).toEqual({ kind: 'temporal', id: 'easter-sunday' }); - expect(native.commemorations).toEqual([]); + // 2030-04-25 is Easter+4 (Thursday of Easter week); `winner.id` is + // this weekday's own real temporal-feasts id since 2026-09-06 (see + // calendar/temporal-feasts/easter-thursday.yml), not the shared + // `easter-sunday` governing-week id. The override mechanism pushes a + // `{kind:'temporal', id:'easter-sunday'}` commemoration for the coarse + // id it replaces, same shape every other movable feast (Ascension, + // Corpus Christi, the Passiontide days) already does; harmless, since + // day-label.ts's collectCommemorations deliberately drops any + // commemoration whose id equals the plain governing weekday (see + // tests/calendar/transfer.test.ts's own Holy Monday case for the same + // shape). + expect(native.winner).toEqual({ kind: 'temporal', id: 'easter-thursday' }); + expect(native.commemorations).toEqual([{ kind: 'temporal', id: 'easter-sunday' }]); expect(native.transferredAway?.candidate.id).toBe('st-mark'); const landing = resolveDay('2030-04-29'); diff --git a/tests/hours/matins.test.ts b/tests/hours/matins.test.ts index 64913b0..6f5d247 100644 --- a/tests/hours/matins.test.ts +++ b/tests/hours/matins.test.ts @@ -376,15 +376,20 @@ describe('resolveOrdo("matins", ...) Sunday within the Octave of Ascension (2026 }); describe('resolveOrdo("matins", ...) Easter Sunday/Monday/Tuesday shared proper Matins (2026-09-02 fix)', () => { - // All 6 weekdays of the Easter Octave share winner {kind: 'temporal', id: - // 'easter-sunday'} -- only Sunday/Monday/Tuesday are live-verified to - // share this exact proper content, restricted via the override's own - // `weekdays` field (see matins-sunday-named-nocturn-overrides.yml). + // Live-verified to share this exact proper content: Sunday/Monday/ + // Tuesday, restricted via the override's own `weekdays` field (see + // matins-sunday-named-nocturn-overrides.yml), keyed by `temporalId` + // (`resolveTemporalId`, always 'easter-sunday' across the whole + // octave) -- independent of `day.winner`, which since 2026-09-06 is + // each weekday's own real temporal-feasts record (`easter-monday`, + // `easter-tuesday`, ...), not the shared governing-Sunday id (see + // calendar/temporal-feasts/easter-monday.yml and siblings). const EASTER_WEEK_2026 = ['2026-04-05', '2026-04-06', '2026-04-07'] as const; + const EASTER_WEEK_2026_WINNER_IDS = ['easter-sunday', 'easter-monday', 'easter-tuesday'] as const; it.each(EASTER_WEEK_2026)('%s shares the identical 13-psalm proper scheme, 3 nocturns, Te Deum', (date) => { const day = resolveDay(date); - expect(day.winner).toEqual({ kind: 'temporal', id: 'easter-sunday' }); + expect(day.winner).toEqual({ kind: 'temporal', id: EASTER_WEEK_2026_WINNER_IDS[EASTER_WEEK_2026.indexOf(date)] }); const ordo = resolveOrdo('matins', date); const psalms = ordo.parts.filter((p) => p.kind === 'psalm').map((p) => (p as { psalmNumber: number }).psalmNumber); expect(psalms).toEqual([3, 94, 1, 2, 8, 15, 23, 27, 29, 63, 65, 75, 87, 107]); @@ -406,10 +411,10 @@ describe('resolveOrdo("matins", ...) Easter Sunday/Monday/Tuesday shared proper expect(nocturn3?.text.text.la).toBe('V. Gavísi sunt discípuli, allelúja.\nR. Viso Dómino, allelúja.'); }); - it('Wednesday-Saturday of the Octave (same winner.id, excluded by the Sunday-side `weekdays`) stay in the plain 1-nocturn ferial branch, same psalm numbers, no Te Deum', () => { + it('Wednesday-Saturday of the Octave (own weekday winner.id, excluded by the Sunday-side `weekdays`) stay in the plain 1-nocturn ferial branch, same psalm numbers, no Te Deum', () => { const ordo = resolveOrdo('matins', '2026-04-08'); // Wednesday of Easter week const day = resolveDay('2026-04-08'); - expect(day.winner).toEqual({ kind: 'temporal', id: 'easter-sunday' }); + expect(day.winner).toEqual({ kind: 'temporal', id: 'easter-wednesday' }); const psalms = ordo.parts.filter((p) => p.kind === 'psalm').map((p) => (p as { psalmNumber: number }).psalmNumber); // Plain ferial Wednesday psalm numbers, same as any other Wednesday -- // only the antiphon layer differs (see the ferial-named-override @@ -429,11 +434,16 @@ describe('resolveOrdo("matins", ...) Easter Octave Wednesday-Saturday ferial nam // All 4 weekdays share the exact same 2 antiphons verbatim (live- // verified 2026-04-08/09/10/11) -- own psalm numbers per weekday // unchanged, split evenly across the weekday's own psalm-group count. + // `day.winner` is each weekday's own real temporal-feasts id since + // 2026-09-06 (see the describe block above) -- the antiphon override + // itself is unaffected, keyed by `temporalId` (`resolveTemporalId`, + // still 'easter-sunday' for the whole octave), not by `day.winner`. const EASTER_OCTAVE_WEEKDAYS = ['2026-04-08', '2026-04-09', '2026-04-10', '2026-04-11'] as const; + const EASTER_OCTAVE_WEEKDAY_WINNER_IDS = ['easter-wednesday', 'easter-thursday', 'easter-friday', 'easter-saturday'] as const; it.each(EASTER_OCTAVE_WEEKDAYS)('%s gets the same 2 real antiphons, own weekday psalm numbers unchanged', (date) => { const day = resolveDay(date); - expect(day.winner).toEqual({ kind: 'temporal', id: 'easter-sunday' }); + expect(day.winner).toEqual({ kind: 'temporal', id: EASTER_OCTAVE_WEEKDAY_WINNER_IDS[EASTER_OCTAVE_WEEKDAYS.indexOf(date)] }); const ordo = resolveOrdo('matins', date); // Ps 3 + 94 (opening/invitatory) plus this weekday's own real ferial table. const psalms = ordo.parts.filter((p) => p.kind === 'psalm').map((p) => (p as { psalmNumber: number }).psalmNumber);