Build the Vespers ordo: mechanism, weekday content, seasonal content
Wires resolveOrdo('vespers', ...) end to end: opening versicle,
weekday psalmody (4 groups, handling the joined Ps 115+116 and the
split Ps 138/143 via a PsalmRef-like shape), the chapter/responsory/
hymn/versicle office bundle, Magnificat, day-collects — reusing
resolveEveningDay so First/Second Vespers precedence and the cross-day
commemoration (both added in the previous commit) apply automatically
— and a closing that reuses Lauds' own conclusio, since no distinct
"Vespera" version of that exact text turned up in the source.
getMagnificatAntiphon mirrors getBenedictusAntiphon's saint/temporal-id
lookup order, but also falls back to real content Benedictus has no
equivalent of: the classic ferial set that quotes the Magnificat's own
text in sequence across the week, with the correct Monastic-rubric
variant picked for Tue/Thu/Fri/Sat (two of those needed a fresh
translation where the Monastic Latin diverges from the given English
in content, not just wording).
Also includes Vespers' own seasonal content (Advent/Lent/Passiontide/
Paschaltide chapter+responsory+hymn+versicle), transcribed from the
same source blocks as the weekday content, with the Monastic-specific
hymn variants hand-applied from the source's substitution notation
against each base Roman text (one transcription slip caught and fixed
mid-pass: the Passiontide hymn's closing lines had been copied from
the Roman text instead of the Monastic one actually being
transcribed). Passiontide's own responsory/hymn correctly omit the
Gloria Patri, matching real rubric and the source data as given.
All weekday/seasonal content marked `draft`, not `verified` — read
directly from the reference source, not cross-checked against a live
rendering per day the way the psalmody was.
Six other hours' resolvePart switches needed the three new HourPart
kinds ('vespers-psalmody', 'vespers-office', 'magnificat') added to
their exhaustive not-used lists so they still typecheck; three
pre-existing tests assumed Vespers was still "coming soon" and are
updated to exercise Matins (still the genuine stub) instead.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -105,6 +105,29 @@ export type HourPart =
|
||||
// data/propers/common/lauds-{capitulum,responsory,hymn,versicle}-*.yml.
|
||||
// Expands into 4 ResolvedParts (chapter, responsory, hymn, versicle).
|
||||
| { kind: 'lauds-office' }
|
||||
// Vespers only. The weekday-resolved 4-psalm-group psalmody — see
|
||||
// hours/vespers.ts and data/hours/vespers-antiphons.yml. Opaque for the
|
||||
// same reason as 'lauds-psalmody': each group's antiphon covers either
|
||||
// one whole psalm, two whole psalms said together under one shared
|
||||
// antiphon (Ps 115+116, Monday), or two verse-ranges of one psalm split
|
||||
// under one shared antiphon (Ps 138/143, Thu/Fri) — no existing part
|
||||
// kind represents that. No per-feast override mechanism yet (unlike
|
||||
// Lauds' getPsalmodyOverrideFor) — every day renders the plain weekday
|
||||
// default for now.
|
||||
| { kind: 'vespers-psalmody' }
|
||||
// Vespers only. The weekday-resolved chapter/short-responsory/hymn/
|
||||
// versicle bundle that follows the psalmody — see hours/vespers.ts and
|
||||
// data/propers/common/vespers-{capitulum,responsory,hymn,versicle}-*.yml.
|
||||
// Expands into 4 ResolvedParts (chapter, responsory, hymn, versicle).
|
||||
| { kind: 'vespers-office' }
|
||||
// Vespers only. Magnificat (Luke 1:46-55), fixed text, framed by a
|
||||
// day-resolved antiphon — see hours/resolve-common.ts's
|
||||
// getMagnificatAntiphon, which mirrors getBenedictusAntiphon's
|
||||
// saint/temporal-id lookup but also falls back to a real weekday
|
||||
// default (data/hours/vespers-magnificat-antiphons.yml, Mon-Sat) that
|
||||
// Benedictus has no equivalent of. Same incipit-or-full/full-after
|
||||
// framing as benedictus/nunc-dimittis, gated by isDoubleOrHigher.
|
||||
| { kind: 'magnificat' }
|
||||
// Lauds only. Benedictus (Luke 1:68-79), fixed text (see propers/common/
|
||||
// benedictus.yml) framed by a day-resolved antiphon (see hours/
|
||||
// resolve-common.ts's getBenedictusAntiphon) — same incipit-or-full/
|
||||
|
||||
Reference in New Issue
Block a user