Add name-template substitution for Common-of-a-Holy-Woman's invitatory antiphon
Deploy / deploy (push) Successful in 1m20s

Commune/C7's own invitatory antiphon ("Laudémus Deum nostrum * In
confessióne beátæ N..") needs a per-saint genitive-singular name, unlike
every other Common invitatory antiphon currently authored. Exports
resolve-common.ts's existing substituteName helper (previously only used
by getDayCollect for collectCommon/collectName) and wires it into
resolveMatinsInvitatoryText via a new SaintRecord.invitatoryName field
-- kept separate from collectName since the two templates' {N}
placeholders don't always need the same grammatical case. Fills in real
declined names for the 3 saints using common-of-a-holy-woman (Anne,
Martha, Mary Magdalene).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012AVXS5iTrk3c2anSYVGwxS
This commit is contained in:
2026-08-27 09:26:22 -04:00
parent f55cd46272
commit 366ada1b26
8 changed files with 74 additions and 8 deletions
+13
View File
@@ -75,6 +75,19 @@ export interface SaintRecord {
* independently per saint, not assumed identical).
*/
benedictusCommon?: string;
/**
* The `{N}` substitution value(s) for the Matins invitatory antiphon's
* own Common template (`hours/matins.ts`'s `resolveMatinsInvitatoryText`,
* via `hours/resolve-common.ts`'s `substituteName` — the same helper
* `getDayCollect` already uses for `collectCommon`/`collectName`, just a
* separate field here since the invitatory's own `{N}` position needs
* its own grammatical case, not necessarily the same one `collectName`
* was declined for). Currently only needed for Common-of-a-Holy-Woman
* (`Commune/C7.txt`'s own `[Invit]`, "Laudémus Deum nostrum * In
* confessióne beátæ N.." — genitive singular, e.g. "Marthæ") — every
* other Common category in use has name-free invitatory text. Absent
* for saints whose Common invitatory antiphon needs no substitution. */
invitatoryName?: { la: string[]; en: string[] };
/** See calendar/types.ts's OctaveConfig doc comment. Absent for the vast
* majority of saints — only ones with a real octave declare it. */
octave?: OctaveConfig;