Give Prime's Preces the ferial form on Vigil days
isSundayOrFeastOffice treats any sanctoral winner, Vigils included, as a "feast," so a Vigil day was getting the Sunday/feast Preces. Add a by-day-kind 'vigilIsFerial' flag, set only on Prime's Preces part (its capitulum keeps the old behavior), so a Vigil-ranked winner now routes to the ferial Preces text instead. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HWN869GrMFHqrer9fdCBbF
This commit is contained in:
@@ -30,6 +30,12 @@
|
||||
# ferial Preces are said on *every* ferial day, not just Advent/Lent/
|
||||
# vigils/Ember days the way later rubrics restricted them.
|
||||
#
|
||||
# Preces additionally set `vigilIsFerial: true` — isSundayOrFeastOffice on
|
||||
# its own treats any sanctoral winner, Vigils included, as a "feast," but
|
||||
# by explicit choice a Vigil day gets the ferial Preces instead. The
|
||||
# capitulum doesn't set this flag, so a Vigil still gets the Sunday/feast
|
||||
# capitulum, same as before.
|
||||
#
|
||||
# Preces deliberately use the *secular* Tridentine form
|
||||
# (propers/common/prime-preces-dominicales.yml), not Monastic Prime's own
|
||||
# shorter Dominicales form — chosen because the secular form keeps content
|
||||
@@ -65,6 +71,7 @@ parts:
|
||||
- kind: by-day-kind
|
||||
resolvedKind: preces
|
||||
omitOnDouble: true
|
||||
vigilIsFerial: true
|
||||
sundayOrFeastRef: { source: common, id: prime-preces-dominicales }
|
||||
ferialRef: { source: common, id: prime-preces-feriales }
|
||||
- kind: prayer
|
||||
|
||||
+5
-2
@@ -97,10 +97,13 @@ function resolvePart(part: HourPart, date: string, day: LiturgicalDay): Resolved
|
||||
case 'canticle':
|
||||
return [{ kind: 'canticle', canticleId: part.canticleId, text: resolveCommon(part.textRef.id) }];
|
||||
case 'by-day-kind': {
|
||||
if (part.omitOnDouble && isDoubleOrHigher(resolveOfficeWinner(day))) {
|
||||
const winner = resolveOfficeWinner(day);
|
||||
if (part.omitOnDouble && isDoubleOrHigher(winner)) {
|
||||
return [];
|
||||
}
|
||||
const ref = isSundayOrFeastOffice(day) ? part.sundayOrFeastRef : part.ferialRef;
|
||||
const isVigil = winner.kind === 'sanctoral' && winner.rank === 'vigil';
|
||||
const useFeastForm = isSundayOrFeastOffice(day) && !(part.vigilIsFerial && isVigil);
|
||||
const ref = useFeastForm ? part.sundayOrFeastRef : part.ferialRef;
|
||||
if (part.resolvedKind === 'preces') {
|
||||
return [{ kind: 'preces', text: resolveCommon(ref.id), label: part.label }];
|
||||
}
|
||||
|
||||
@@ -61,6 +61,12 @@ export type HourPart =
|
||||
resolvedKind: 'chapter' | 'preces';
|
||||
label?: string;
|
||||
omitOnDouble?: true;
|
||||
// When true, a Vigil-ranked sanctoral winner takes the ferialRef
|
||||
// instead of the sundayOrFeastRef isSundayOrFeastOffice would
|
||||
// otherwise give it (that function treats any sanctoral winner,
|
||||
// Vigils included, as a "feast"). Prime's Preces use this; its
|
||||
// capitulum doesn't.
|
||||
vigilIsFerial?: true;
|
||||
sundayOrFeastRef: PropersRef;
|
||||
ferialRef: PropersRef;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user