diff --git a/src/data/propers/common/lauds-hymn-advent-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-advent-doxology-per-annum.yml new file mode 100644 index 0000000..1af5986 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-advent-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-advent.yml b/src/data/propers/common/lauds-hymn-advent.yml index 524f1c1..4a61894 100644 --- a/src/data/propers/common/lauds-hymn-advent.yml +++ b/src/data/propers/common/lauds-hymn-advent.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-friday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-friday-doxology-per-annum.yml new file mode 100644 index 0000000..c2a84c1 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-friday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-friday.yml b/src/data/propers/common/lauds-hymn-friday.yml index b7bb59c..dab88cb 100644 --- a/src/data/propers/common/lauds-hymn-friday.yml +++ b/src/data/propers/common/lauds-hymn-friday.yml @@ -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 life’s 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 diff --git a/src/data/propers/common/lauds-hymn-lent-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-lent-doxology-per-annum.yml new file mode 100644 index 0000000..f2df037 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-lent-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-lent.yml b/src/data/propers/common/lauds-hymn-lent.yml index 89f848f..a3572da 100644 --- a/src/data/propers/common/lauds-hymn-lent.yml +++ b/src/data/propers/common/lauds-hymn-lent.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-monday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-monday-doxology-per-annum.yml new file mode 100644 index 0000000..08a8321 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-monday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-monday.yml b/src/data/propers/common/lauds-hymn-monday.yml index 1071a3f..e7d9882 100644 --- a/src/data/propers/common/lauds-hymn-monday.yml +++ b/src/data/propers/common/lauds-hymn-monday.yml @@ -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 God’s 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 diff --git a/src/data/propers/common/lauds-hymn-paschaltide-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-paschaltide-doxology-per-annum.yml new file mode 100644 index 0000000..3889608 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-paschaltide-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-paschaltide.yml b/src/data/propers/common/lauds-hymn-paschaltide.yml index 0409451..1940fd8 100644 --- a/src/data/propers/common/lauds-hymn-paschaltide.yml +++ b/src/data/propers/common/lauds-hymn-paschaltide.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-passiontide-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-passiontide-doxology-per-annum.yml new file mode 100644 index 0000000..099f801 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-passiontide-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-passiontide.yml b/src/data/propers/common/lauds-hymn-passiontide.yml index b4cc68c..bba9fec 100644 --- a/src/data/propers/common/lauds-hymn-passiontide.yml +++ b/src/data/propers/common/lauds-hymn-passiontide.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-saturday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-saturday-doxology-per-annum.yml new file mode 100644 index 0000000..880dcd7 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-saturday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-saturday.yml b/src/data/propers/common/lauds-hymn-saturday.yml index 9c9e5f3..24c9ef7 100644 --- a/src/data/propers/common/lauds-hymn-saturday.yml +++ b/src/data/propers/common/lauds-hymn-saturday.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-sunday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-sunday-doxology-per-annum.yml new file mode 100644 index 0000000..828a084 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-sunday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-sunday.yml b/src/data/propers/common/lauds-hymn-sunday.yml index 06f4cb0..09ae267 100644 --- a/src/data/propers/common/lauds-hymn-sunday.yml +++ b/src/data/propers/common/lauds-hymn-sunday.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-thursday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-thursday-doxology-per-annum.yml new file mode 100644 index 0000000..f423049 --- /dev/null +++ b/src/data/propers/common/lauds-hymn-thursday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-thursday.yml b/src/data/propers/common/lauds-hymn-thursday.yml index 642c7b8..f8614a5 100644 --- a/src/data/propers/common/lauds-hymn-thursday.yml +++ b/src/data/propers/common/lauds-hymn-thursday.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-tuesday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-tuesday-doxology-per-annum.yml new file mode 100644 index 0000000..19b393e --- /dev/null +++ b/src/data/propers/common/lauds-hymn-tuesday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-tuesday.yml b/src/data/propers/common/lauds-hymn-tuesday.yml index c4ddca4..bed723e 100644 --- a/src/data/propers/common/lauds-hymn-tuesday.yml +++ b/src/data/propers/common/lauds-hymn-tuesday.yml @@ -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 Adam’s ancient crime; And the light of Eden’s 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 diff --git a/src/data/propers/common/lauds-hymn-wednesday-doxology-per-annum.yml b/src/data/propers/common/lauds-hymn-wednesday-doxology-per-annum.yml new file mode 100644 index 0000000..39047af --- /dev/null +++ b/src/data/propers/common/lauds-hymn-wednesday-doxology-per-annum.yml @@ -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 diff --git a/src/data/propers/common/lauds-hymn-wednesday.yml b/src/data/propers/common/lauds-hymn-wednesday.yml index 880f028..8e22821 100644 --- a/src/data/propers/common/lauds-hymn-wednesday.yml +++ b/src/data/propers/common/lauds-hymn-wednesday.yml @@ -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 diff --git a/src/hours/lauds.ts b/src/hours/lauds.ts index 06e8bec..ba626b1 100644 --- a/src/hours/lauds.ts +++ b/src/hours/lauds.ts @@ -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}`) }, ]; }