Wire seasonal hymn-doxology into every plain-default Lauds hymn

Lauds' Monastic source never carries the "*" substitution marker anywhere
(audited), so this is purely the same deliberate broadening as the Vespers
commit: every plain-default hymn (Sunday, Mon-Sat, Advent, Lent,
Passiontide, Paschaltide) now routes its closing doxology through
getHymnDoxologyId/appendDoxology instead of a fixed ending, split into
matching per-annum companion files that reproduce the original text
whenever no season/feast override applies.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AGjUyhUZJaSjiniEmnLdak
This commit is contained in:
2026-09-03 15:00:17 -04:00
parent 0736c36494
commit 46b34493e2
23 changed files with 104 additions and 137 deletions
@@ -0,0 +1,7 @@
id: lauds-hymn-advent-doxology-per-annum
text:
la: "Laus, honor, virtus, glória,\nDeo Patri, et Fílio,\nSancto simul Paráclito,\nIn sæculórum sǽcula.\nAmen."
en: "Honour, glory, virtue, merit,\nTo the Father and the Son,\nWith the co-eternal Spirit,\nWhile eternal ages run.\nAmen."
status:
la: draft
en: draft
@@ -29,12 +29,6 @@ text:
Mundúmque horror cínxerit,
Non pro reátu púniat,
Sed nos pius tunc prótegat.
Laus, honor, virtus, glória,
Deo Patri, et Fílio,
Sancto simul Paráclito,
In sæculórum sǽcula.
Amen.
en: |
Hark, a herald voice is calling;
"Christ is nigh," it seems to say;
@@ -55,12 +49,6 @@ text:
Wrapping all the earth in fear,
May he then as our defender
On the clouds of heaven appear.
Honour, glory, virtue, merit,
To the Father and the Son,
With the co-eternal Spirit,
While eternal ages run.
Amen.
status:
la: draft
en: draft
@@ -0,0 +1,7 @@
id: lauds-hymn-friday-doxology-per-annum
text:
la: "Deo Patri sit glória,\nEjúsque soli Fílio,\nCum Spíritu Paráclito,\nEt nunc, et in perpétuum.\nAmen."
en: "All laud to God the Father be,\nAll praise, Eternal Son, to thee:\nAll glory, as is ever meet,\nTo God the holy Paraclete,\nAmen."
status:
la: verified
en: verified
@@ -26,12 +26,6 @@ text:
Radícet altis sénsibus:
Secúnda spes congáudeat,
Qua major exstat cáritas.
Deo Patri sit glória,
Ejúsque soli Fílio,
Cum Spíritu Paráclito,
Et nunc, et in perpétuum.
Amen.
en: |
O Christ, whose glory fills the heaven,
Our only hope, in mercy given;
@@ -57,12 +51,6 @@ text:
With joyous hope, in thee to live;
That lifes rough way may ever be
Made strong and pure by charity.
All laud to God the Father be,
All praise, Eternal Son, to thee:
All glory, as is ever meet,
To God the holy Paraclete,
Amen.
status:
la: verified
en: verified
@@ -0,0 +1,7 @@
id: lauds-hymn-lent-doxology-per-annum
text:
la: "Te rerum univérsitas,\nClemens, adóret, Trínitas,\nEt nos novi per véniam,\nNovum canámus cánticum.\nAmen."
en: "May heaven and earth aloud proclaim\nThe Trinity's almighty fame;\nAnd we, restored to grace, rejoice\nIn newness both of heart and voice.\nAmen."
status:
la: draft
en: draft
@@ -25,12 +25,6 @@ text:
In qua reflórent ómnia:
Lætémur in hac ad tuam
Per hanc redúcti grátiam.
Te rerum univérsitas,
Clemens, adóret, Trínitas,
Et nos novi per véniam,
Novum canámus cánticum.
Amen.
en: |
Jesu, salvation's Sun Divine,
Within our inmost bosoms shine,
@@ -51,12 +45,6 @@ text:
The days of joy for them that mourn;
May we of their indulgence share,
And bless the God that grants our prayer.
May heaven and earth aloud proclaim
The Trinity's almighty fame;
And we, restored to grace, rejoice
In newness both of heart and voice.
Amen.
status:
la: draft
en: draft
@@ -0,0 +1,7 @@
id: lauds-hymn-monday-doxology-per-annum
text:
la: "Deo Patri sit glória,\nEjúsque soli Fílio,\nCum Spíritu Paráclito,\nEt nunc et in perpétuum.\nAmen."
en: "All laud to God the Father be;\nAll praise, Eternal Son, to thee;\nAll glory, as is ever meet,\nTo God the Holy Paraclete.\nAmen."
status:
la: verified
en: verified
@@ -41,12 +41,6 @@ text:
Auróra totus pródeat,
In Patre totus Fílius,
Et totus in Verbo Pater.
Deo Patri sit glória,
Ejúsque soli Fílio,
Cum Spíritu Paráclito,
Et nunc et in perpétuum.
Amen.
en: |
O splendour of Gods glory bright,
O thou that bringest light from light,
@@ -87,12 +81,6 @@ text:
Let him come forth our perfect morn,
The Word in God the Father One,
The Father perfect in the Son.
All laud to God the Father be;
All praise, Eternal Son, to thee;
All glory, as is ever meet,
To God the Holy Paraclete.
Amen.
status:
la: verified
en: verified
@@ -0,0 +1,7 @@
id: lauds-hymn-paschaltide-doxology-per-annum
text:
la: "Glória tibi Dómine,\nQui surrexísti a mórtuis,\nCum Patre et Sancto Spíritu,\nIn sempitérna sǽcula.\nAmen."
en: "To God the Father let us sing,\nTo God the Son, our risen King,\nAnd equally let us adore\nThe Spirit, God forevermore.\nAmen."
status:
la: draft
en: draft
@@ -30,12 +30,6 @@ text:
In hoc pascháli gáudio,
Ab omni mortis ímpetu
Tuum defénde pópulum.
Glória tibi Dómine,
Qui surrexísti a mórtuis,
Cum Patre et Sancto Spíritu,
In sempitérna sǽcula.
Amen.
en: |
The morn had spread her crimson rays,
When rang the skies with shouts of praise;
@@ -61,12 +55,6 @@ text:
When at the font his name we chose;
Oh, let not sin our robes defile,
And turn to grief the paschal smile.
To God the Father let us sing,
To God the Son, our risen King,
And equally let us adore
The Spirit, God forevermore.
Amen.
status:
la: draft
en: draft
@@ -0,0 +1,7 @@
id: lauds-hymn-passiontide-doxology-per-annum
text:
la: "Glória et honor Deo\nUsquequáque altíssimo:\nUna Patri, Filióque,\nInclyto Paráclito:\nCui laus est et potéstas\nPer ætérna sǽcula.\nAmen."
en: "To the Trinity be glory\nEverlasting, as is meet;\nEqual to the Father, equal\nTo the Son, and Paraclete:\nTrinal Unity, whose praises\nAll created things repeat.\nAmen."
status:
la: draft
en: draft
@@ -40,14 +40,6 @@ text:
Nauta mundo náufrago,
Quem sacer cruor perúnxit,
Fusus Agni córpore.
Glória et honor Deo
Usquequáque altíssimo:
Una Patri, Filióque,
Inclyto Paráclito:
Cui laus est et potéstas
Per ætérna sǽcula.
Amen.
en: |
Thirty years among us dwelling,
His appointed time fulfilled,
@@ -83,14 +75,6 @@ text:
Harbour, like the ark of old;
With the sacred blood anointed
From the smitten Lamb that rolled.
To the Trinity be glory
Everlasting, as is meet;
Equal to the Father, equal
To the Son, and Paraclete:
Trinal Unity, whose praises
All created things repeat.
Amen.
status:
la: draft
en: draft
@@ -0,0 +1,7 @@
id: lauds-hymn-saturday-doxology-per-annum
text:
la: "Glória tibi Dómine,\nQui natus es de Vírgine,\nCum Patre et Sancto Spíritu,\nIn sempitérna sǽcula.\nAmen."
en: "All honour, laud, and glory be,\nO Jesu, Virgin-born, to thee;\nAll glory, as is ever meet,\nTo Father and to Paraclete.\nAmen."
status:
la: verified
en: verified
@@ -20,12 +20,6 @@ text:
Et porta lucis fúlgida:
Vitam datam per Vírginem,
Gentes redémptæ, pláudite.
Glória tibi Dómine,
Qui natus es de Vírgine,
Cum Patre et Sancto Spíritu,
In sempitérna sǽcula.
Amen.
en: |
O glorious lady! throned on high
Above the star-illumined sky;
@@ -41,12 +35,6 @@ text:
Light's gateway fair and glistering;
Life through a Virgin is restored;
Ye ransomed nations, praise the Lord!
All honour, laud, and glory be,
O Jesu, Virgin-born, to thee;
All glory, as is ever meet,
To Father and to Paraclete.
Amen.
status:
la: verified
en: verified
@@ -0,0 +1,7 @@
id: lauds-hymn-sunday-doxology-per-annum
text:
la: "Præstet hoc nobis Déitas beáta\nPatris, ac Nati, paritérque Sancti\nSpíritus, cujus réboat in omni\nGlória mundo.\nAmen."
en: "This be our portion, God forever blessed,\nFather eternal, Son, and Holy Spirit,\nWhose is the glory, which through all creation\nEver resoundeth.\nAmen."
status:
la: verified
en: verified
@@ -11,12 +11,6 @@ text:
Pellat languórem, tríbuat salútem,
Donet et nobis pietáte Patris
Regna polorum.
Præstet hoc nobis Déitas beáta
Patris, ac Nati, paritérque Sancti
Spíritus, cujus réboat in omni
Glória mundo.
Amen.
en: |
Lo, the dim shadows of the night are waning;
Lightsome and blushing, dawn of day returneth;
@@ -27,12 +21,6 @@ text:
Banish all troubles, kindly health bestowing;
And may he grant us, of his countless blessings,
Peace that is endless.
This be our portion, God forever blessed,
Father eternal, Son, and Holy Spirit,
Whose is the glory, which through all creation
Ever resoundeth.
Amen.
status:
la: verified
en: verified
@@ -0,0 +1,7 @@
id: lauds-hymn-thursday-doxology-per-annum
text:
la: "Deo Patri sit glória,\nEjúsque soli Fílio,\nCum Spíritu Paráclito,\nEt nunc, et in perpétuum.\nAmen."
en: "Unto God the Father, Son,\nHoly Spirit, Three in One,\nOne in Three, be glory done,\nNow and evermore.\nAmen."
status:
la: verified
en: verified
@@ -21,12 +21,6 @@ text:
Qui nos diébus ómnibus,
Actúsque nostros próspicit
A luce prima in vésperum.
Deo Patri sit glória,
Ejúsque soli Fílio,
Cum Spíritu Paráclito,
Et nunc, et in perpétuum.
Amen.
en: |
See the golden sun arise!
Let no more our darkened eyes
@@ -47,12 +41,6 @@ text:
All we do, and think, and say,
Watching us from break of day
Till the twilight fall.
Unto God the Father, Son,
Holy Spirit, Three in One,
One in Three, be glory done,
Now and evermore.
Amen.
status:
la: verified
en: verified
@@ -0,0 +1,7 @@
id: lauds-hymn-tuesday-doxology-per-annum
text:
la: "Deo Patri sit glória,\nEjúsque soli Fílio,\nCum Spíritu Paráclito,\nEt nunc, et in perpétuum.\nAmen."
en: "Unto God the Father, Son,\nHoly Spirit, Three in One,\nOne in Three, be glory done,\nNow and evermore.\nAmen."
status:
la: verified
en: verified
@@ -21,12 +21,6 @@ text:
Tu rumpe noctis víncula:
Tu solve peccátum vetus,
Novúmque lumen íngere.
Deo Patri sit glória,
Ejúsque soli Fílio,
Cum Spíritu Paráclito,
Et nunc, et in perpétuum.
Amen.
en: |
As the bird, whose clarion gay
Sounds before the dawn is grey,
@@ -47,12 +41,6 @@ text:
Forged by Adams ancient crime;
And the light of Edens prime
To the world restore!
Unto God the Father, Son,
Holy Spirit, Three in One,
One in Three, be glory done,
Now and evermore.
Amen.
status:
la: verified
en: verified
@@ -0,0 +1,7 @@
id: lauds-hymn-wednesday-doxology-per-annum
text:
la: "Deo Patri sit glória,\nEjúsque soli Fílio,\nCum Spíritu Paráclito,\nEt nunc, et in perpétuum.\nAmen."
en: "Unto God the Father, Son,\nHoly Spirit, Three in One,\nOne in Three, be glory done,\nNow and evermore.\nAmen."
status:
la: verified
en: verified
@@ -21,12 +21,6 @@ text:
Quæ luce purgéntur tua:
Tu, lux Eói síderis,
Vultu seréno illúmina.
Deo Patri sit glória,
Ejúsque soli Fílio,
Cum Spíritu Paráclito,
Et nunc, et in perpétuum.
Amen.
en: |
Day is breaking, dawn is bright:
Hence, vain shadows of the night!
@@ -47,12 +41,6 @@ text:
All that leads our thoughts astray!
Through our spirits, King of day,
Pour thy light divine!
Unto God the Father, Son,
Holy Spirit, Three in One,
One in Three, be glory done,
Now and evermore.
Amen.
status:
la: verified
en: verified
+27 -1
View File
@@ -6,10 +6,12 @@ import { getPsalmVerses } from '../psalter';
import { getCanticle, type CanticleVerse } from './lauds-canticles';
import { getLaudsSaintOverride, getLaudsCommonOverride, type LaudsPsalmodyOverride } from './lauds-psalmody-overrides';
import { getOpeningVersicleId } from './opening-versicle';
import { getHymnDoxologyId } from './hymn-doxology';
import { getMarianAntiphonId, getMarianAntiphonLabel } from './marian-antiphon';
import { applyFlexaMark } from './antiphon';
import {
resolveCommon,
appendDoxology,
getDayCollects,
getBenedictusAntiphon,
splitNamedAntiphon,
@@ -261,6 +263,30 @@ function resolvePsalmody(day: LiturgicalDay): ResolvedPart[] {
return parts;
}
/**
* Every plain-default Lauds hymn's own closing doxology stanza (split out
* into `lauds-hymn-${key}-doxology-per-annum.yml`) is re-attached here
* through the seasonal mechanism (hours/hymn-doxology.ts) rather than kept
* as fixed text — a deliberate broadening beyond the reference source
* (whose Monastic weekday/seasonal Lauds hymns mostly don't vary their own
* doxology by season at all, live-checked 2026-09-03): this project isn't
* a reconstruction (see the repo's CLAUDE.md), and a hymn's closing
* doxology is a natural, low-cost way to keep every hour visibly in step
* with the season — e.g. the plain weekday hymns used all through
* Christmastide/Epiphanytide/Corpus Christi/Sacred Heart (no
* `seasonalOfficeSuffix` covers those) previously stayed on their generic
* per-annum ending throughout; now they pick up Nat/Epi/Corp/Heart like
* Prime/Compline already did. Each `key`'s own natural ending is preserved
* as that key's per-annum default, so a season/feast with no override
* (e.g. Advent, Lent — the source itself never swaps those) reproduces the
* exact original text.
*/
function resolveLaudsHymn(day: LiturgicalDay, key: string): ResolvedText {
const body = resolveCommon(`lauds-hymn-${key}`);
const doxology = resolveCommon(getHymnDoxologyId(day, `lauds-hymn-${key}-doxology-per-annum`));
return appendDoxology(body, doxology);
}
/** Any sanctoral winner's (or named-temporal feast's) own capitulum/
* responsory/hymn/versicle (data/propers/common/lauds-{part}-${id}.yml),
* else their Common's (`${part}-${common}`), when authored — see
@@ -287,7 +313,7 @@ function resolveOffice(day: LiturgicalDay): ResolvedPart[] {
return [
{ kind: 'chapter', text: resolveCommon(seasonSuffix ? `lauds-capitulum-${key}` : capitulumId(day.weekday)) },
{ kind: 'responsory', text: resolveResponsory(resolveCommon(`lauds-responsory-${key}`), day) },
{ kind: 'hymn', text: resolveCommon(`lauds-hymn-${key}`) },
{ kind: 'hymn', text: resolveLaudsHymn(day, key) },
{ kind: 'versicle', text: resolveCommon(`lauds-versicle-${key}`) },
];
}