Wire seasonal hymn-doxology into the Matins ferial hymn
The plain ferial hymn's Monastic source (Day1-6 Hymnus, Psalterium/Special/Matutinum Special.txt) carries a real "*" seasonal- substitution marker, live-checked against the reference engine. Splits the hymn's own natural doxology ending into a new per-annum companion file and swaps it via getHymnDoxologyId/appendDoxology, same pattern already used by Prime and Compline. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
# The ferial Matins hymn's own natural doxology ending, split out of
|
||||||
|
# matins-hymn-ferial.yml so hours/matins.ts can swap it seasonally via
|
||||||
|
# hymn-doxology.ts — the reference source's weekday (Day1-6) Matins hymns
|
||||||
|
# each carry a real "*" substitution marker here, live-checked in
|
||||||
|
# Psalterium/Special/Matutinum Special.txt, all sharing this same Latin
|
||||||
|
# ending; the Sunday (Day0) form has no such marker (its own doxology,
|
||||||
|
# "Præstet hoc nobis Déitas beáta...", is fixed) — not modeled here since
|
||||||
|
# vu's Matins doesn't distinguish Sunday from ferial (see matins.ts).
|
||||||
|
# Text/status carried over unchanged from the original file.
|
||||||
|
id: matins-hymn-doxology-per-annum
|
||||||
|
text:
|
||||||
|
la: "Præsta, Pater piíssime,\nPatríque compar Únice,\nCum Spíritu Paráclito\nRegnans per omne sǽculum. Amen."
|
||||||
|
en: "Grant this, O Father ever One\nWith Christ, thy sole-begotten Son,\nAnd Holy Ghost, whom all adore,\nReigning and blest forevermore. Amen."
|
||||||
|
status:
|
||||||
|
la: verified
|
||||||
|
en: verified
|
||||||
@@ -4,6 +4,11 @@
|
|||||||
# year-round text; only this one (evidently the ordinary-time/per-annum
|
# year-round text; only this one (evidently the ordinary-time/per-annum
|
||||||
# form) is authored so far. Seasonal variants deferred (see TODO.md),
|
# form) is authored so far. Seasonal variants deferred (see TODO.md),
|
||||||
# same incremental-content pattern as everywhere else in this project.
|
# same incremental-content pattern as everywhere else in this project.
|
||||||
|
#
|
||||||
|
# The closing doxology stanza is split out into
|
||||||
|
# matins-hymn-doxology-per-annum.yml (see hours/matins.ts) — the source
|
||||||
|
# carries a real "*" seasonal-substitution marker there (live-checked
|
||||||
|
# 2026-09-03, Psalterium/Special/Matutinum Special.txt).
|
||||||
id: matins-hymn-ferial
|
id: matins-hymn-ferial
|
||||||
text:
|
text:
|
||||||
la: >-
|
la: >-
|
||||||
@@ -41,15 +46,6 @@ text:
|
|||||||
Et ore te canéntium
|
Et ore te canéntium
|
||||||
|
|
||||||
Laudéris in perpétuum.
|
Laudéris in perpétuum.
|
||||||
|
|
||||||
|
|
||||||
Præsta, Pater piíssime,
|
|
||||||
|
|
||||||
Patríque compar Únice,
|
|
||||||
|
|
||||||
Cum Spíritu Paráclito
|
|
||||||
|
|
||||||
Regnans per omne sǽculum. Amen.
|
|
||||||
en: >-
|
en: >-
|
||||||
Our limbs refreshed with slumber now,
|
Our limbs refreshed with slumber now,
|
||||||
|
|
||||||
@@ -85,15 +81,6 @@ text:
|
|||||||
That by their lips who thee adore
|
That by their lips who thee adore
|
||||||
|
|
||||||
Thou mayst be praised forevermore.
|
Thou mayst be praised forevermore.
|
||||||
|
|
||||||
|
|
||||||
Grant this, O Father ever One
|
|
||||||
|
|
||||||
With Christ, thy sole-begotten Son,
|
|
||||||
|
|
||||||
And Holy Ghost, whom all adore,
|
|
||||||
|
|
||||||
Reigning and blest forevermore. Amen.
|
|
||||||
status:
|
status:
|
||||||
la: verified
|
la: verified
|
||||||
en: verified
|
en: verified
|
||||||
|
|||||||
+10
-1
@@ -76,9 +76,11 @@ import { getPsalmVerses } from '../psalter';
|
|||||||
import { getPsalmsFor, type PsalmRef } from '../psalter/distribution';
|
import { getPsalmsFor, type PsalmRef } from '../psalter/distribution';
|
||||||
import { getScriptureVerses } from '../scripture';
|
import { getScriptureVerses } from '../scripture';
|
||||||
import { getOpeningVersicleId } from './opening-versicle';
|
import { getOpeningVersicleId } from './opening-versicle';
|
||||||
|
import { getHymnDoxologyId } from './hymn-doxology';
|
||||||
import { applyFlexaMark } from './antiphon';
|
import { applyFlexaMark } from './antiphon';
|
||||||
import {
|
import {
|
||||||
resolveCommon,
|
resolveCommon,
|
||||||
|
appendDoxology,
|
||||||
getDayCollect,
|
getDayCollect,
|
||||||
getOfficeOverrideId,
|
getOfficeOverrideId,
|
||||||
resolveOfficeWinner,
|
resolveOfficeWinner,
|
||||||
@@ -454,7 +456,14 @@ function resolveMatinsHymn(day: LiturgicalDay): ResolvedText {
|
|||||||
return seasonal;
|
return seasonal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return resolveCommon('matins-hymn-ferial');
|
// The plain ferial hymn's own Monastic source (Day1-6 Hymnus, Psalterium/
|
||||||
|
// Special/Matutinum Special.txt) carries a real seasonal-doxology
|
||||||
|
// substitution marker (live-checked 2026-09-03) — unlike the Advent/
|
||||||
|
// Paschaltide seasonal hymns above, whose Monastic forms are each fixed,
|
||||||
|
// non-swapping text, so only this final fallback needs the swap.
|
||||||
|
const body = resolveCommon('matins-hymn-ferial');
|
||||||
|
const doxology = resolveCommon(getHymnDoxologyId(day, 'matins-hymn-doxology-per-annum'));
|
||||||
|
return appendDoxology(body, doxology);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The plain ferial weekday nocturn's real antiphoned psalmody — a
|
/** The plain ferial weekday nocturn's real antiphoned psalmody — a
|
||||||
|
|||||||
Reference in New Issue
Block a user