Give the Vigil of Christmas (Dec 24) its own proper content
Deploy / deploy (push) Successful in 1m28s
Deploy / deploy (push) Successful in 1m28s
Non-Sunday Dec 24 previously just inherited Advent 4's ferial collect and antiphons with nothing of its own. Import the Vigil's real proper content from the reference engine (Duplex I classis): its own collect, all 5 Lauds antiphons, the Benedictus antiphon, and Matins' Gospel (Matt 1:18-21) + St. Jerome homily, wired via a new `vigil-of-christmas` temporal id scoped to non-Sunday Dec 24 only. Advent IV landing on Dec 24 itself is untouched, left as its own separate design question. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ME8QNPdEmHSbSx1r6VmDRG
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
// confirmed against that source rather than re-derived by hand.
|
||||
import { resolveSeason, sundayOnOrBefore, firstSundayStrictlyAfter, adventStart, easterOffsetOf } from './temporal';
|
||||
import { daysBetween } from './date-math';
|
||||
import { weekdayOf } from './weekday';
|
||||
|
||||
const EASTER_OFFSET_IDS: [number, string][] = [
|
||||
[-63, 'septuagesima'],
|
||||
@@ -78,6 +79,21 @@ export function resolveTemporalId(isoDate: string): string {
|
||||
const season = resolveSeason(isoDate);
|
||||
const year = Number(isoDate.slice(0, 4));
|
||||
|
||||
// The Vigil of Christmas (Dec 24) has its own real proper content
|
||||
// (collect, Lauds antiphons, Matins Gospel+homily nocturn) distinct from
|
||||
// Advent 4's own — see data/propers/temporal/vigil-of-christmas-collect.yml
|
||||
// and data/propers/nocturn-readings/vigil-of-christmas.yml, both
|
||||
// transcribed directly from the reference engine's Sancti/12-24.txt.
|
||||
// Scoped to non-Sunday only for now: when Dec 24 itself is Advent 4's own
|
||||
// Sunday, the reference engine's own 12-24s.txt keeps Advent 4's psalms
|
||||
// and most of its Matins lessons (only swapping in the Vigil's Gospel
|
||||
// nocturn) rather than fully substituting this id — a genuine content
|
||||
// splice this app doesn't model yet, deliberately left as `advent-4` for
|
||||
// that one specific case pending that design decision.
|
||||
if (isoDate.slice(5) === '12-24' && weekdayOf(isoDate) !== 'sunday') {
|
||||
return 'vigil-of-christmas';
|
||||
}
|
||||
|
||||
if (season === 'advent') {
|
||||
const start = adventStart(year);
|
||||
const n = Math.round(daysBetween(start, sundayOnOrBefore(isoDate)) / 7) + 1;
|
||||
|
||||
Reference in New Issue
Block a user