From 48e89305e0479184655bbb521647758547f194c9 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Tue, 16 Dec 2025 13:42:17 +0100 Subject: [PATCH] feat: enhance rosary with final prayer and mystery titles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add RosaryFinalPrayer component with Latin and German text - Display short mystery titles in decade headings (e.g., "5. Gesätz: Kreuzigung") - Add descriptive titles to initial three Ave Marias (Glaube, Hoffnung, Liebe) - Add closing cross symbol to signal final sign of the cross - Mystery titles update dynamically when switching between rosary types --- package.json | 7 ++- .../prayers/RosaryFinalPrayer.svelte | 24 ++++++++++ src/routes/glaube/rosenkranz/+page.svelte | 48 +++++++++++++++++-- 3 files changed, 74 insertions(+), 5 deletions(-) create mode 100644 src/lib/components/prayers/RosaryFinalPrayer.svelte diff --git a/package.json b/package.json index 1d6c313..81db65a 100644 --- a/package.json +++ b/package.json @@ -44,5 +44,10 @@ "mongoose": "^8.0.0", "node-cron": "^4.2.1", "sharp": "^0.33.0" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "esbuild" + ] } -} +} \ No newline at end of file diff --git a/src/lib/components/prayers/RosaryFinalPrayer.svelte b/src/lib/components/prayers/RosaryFinalPrayer.svelte new file mode 100644 index 0000000..e98f857 --- /dev/null +++ b/src/lib/components/prayers/RosaryFinalPrayer.svelte @@ -0,0 +1,24 @@ +

+ Orémus: + Lasset uns beten: +

+

+ Déus, cújus Unigénitus, + O Gott, dessen eingeborner Sohn + pér vítam, mórtem ét resurrectiónem súam + durch sein Leben, seinen Tod und seine Auferstehung + nóbis salútis ætérnæ præmia comparávit: + uns die Belohnung des ewigen Lebens verdient hat, + concéde, quæsumus; + verleihe uns, wir bitten dich, + út, hæc mystéria sanctíssimo beátæ Maríæ Vírginis Rosário recoléntes; + daß wir, indem wir die Geheimisse des heiligen Rosenkranzes der allerseligsten Jungfrau ehren, + ét imitémur quód cóntinent, + was sie enthalten nachahmen + ét quód promíttunt, assequámur. + und dadurch erlangen, was uns in denselben verheißen ist. + Pér eúmdem Chrístum Dóminum nóstrum. + Durch unsern Herrn Jesus Christus. + Ámen. + Amen. +

diff --git a/src/routes/glaube/rosenkranz/+page.svelte b/src/routes/glaube/rosenkranz/+page.svelte index f39a4af..dd2e3f8 100644 --- a/src/routes/glaube/rosenkranz/+page.svelte +++ b/src/routes/glaube/rosenkranz/+page.svelte @@ -9,6 +9,7 @@ import AveMaria from "$lib/components/prayers/AveMaria.svelte"; import GloriaPatri from "$lib/components/prayers/GloriaPatri.svelte"; import FatimaGebet from "$lib/components/prayers/FatimaGebet.svelte"; import SalveRegina from "$lib/components/prayers/SalveRegina.svelte"; +import RosaryFinalPrayer from "$lib/components/prayers/RosaryFinalPrayer.svelte"; import BenedictusMedal from "$lib/components/BenedictusMedal.svelte"; import CounterButton from "$lib/components/CounterButton.svelte"; @@ -75,6 +76,38 @@ const mysteriesLatin = { ] }; +// Short titles for mysteries (for display in headings) +const mysteryTitles = { + freudenreich: [ + "Verkündigung", + "Heimsuchung", + "Geburt", + "Darstellung", + "Wiederfindung" + ], + schmerzhaften: [ + "Todesangst", + "Geißelung", + "Dornenkrönung", + "Kreuzweg", + "Kreuzigung" + ], + glorreichen: [ + "Auferstehung", + "Himmelfahrt", + "Geistsendung", + "Aufnahme Mariens", + "Krönung Mariens" + ], + lichtreichen: [ + "Taufe", + "Hochzeit zu Kana", + "Verkündigung des Reiches", + "Verklärung", + "Einsetzung der Eucharistie" + ] +}; + // Toggle for including Luminous mysteries let includeLuminous = true; @@ -113,12 +146,14 @@ function getMysteryForWeekday(date, includeLuminous) { let selectedMystery = getMysteryForWeekday(new Date(), includeLuminous); let currentMysteries = mysteries[selectedMystery]; let currentMysteriesLatin = mysteriesLatin[selectedMystery]; +let currentMysteryTitles = mysteryTitles[selectedMystery]; // Function to switch mysteries function selectMystery(mysteryType) { selectedMystery = mysteryType; currentMysteries = mysteries[mysteryType]; currentMysteriesLatin = mysteriesLatin[mysteryType]; + currentMysteryTitles = mysteryTitles[mysteryType]; } // Function to handle toggle change @@ -1153,7 +1188,7 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10 bind:this={sectionElements.start1} data-section="start1" > -

Ave Maria

+

Ave Maria: Glaube

-

Ave Maria

+

Ave Maria: Hoffnung

-

Ave Maria

+

Ave Maria: Liebe

-

{decadeNum}. Gesätz

+

{decadeNum}. Gesätz: {currentMysteryTitles[decadeNum - 1]}

Ave Maria (10×)

Salve Regina + +

Schlussgebet

+ + +