Compare commits

2 Commits

Author SHA1 Message Date
48e89305e0 feat: enhance rosary with final prayer and mystery titles
All checks were successful
CI / update (push) Successful in 25s
- 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
2025-12-16 13:42:38 +01:00
f4d6f195b3 basic CLAUDE.md for mcp 2025-12-16 11:32:38 +01:00
4 changed files with 97 additions and 5 deletions

23
CLAUDE.md Normal file
View File

@@ -0,0 +1,23 @@
You are able to use the Svelte MCP server, where you have access to comprehensive Svelte 5 and SvelteKit documentation. Here's how to use the available tools effectively:
## Available MCP Tools:
### 1. list-sections
Use this FIRST to discover all available documentation sections. Returns a structured list with titles, use_cases, and paths.
When asked about Svelte or SvelteKit topics, ALWAYS use this tool at the start of the chat to find relevant sections.
### 2. get-documentation
Retrieves full documentation content for specific sections. Accepts single or multiple sections.
After calling the list-sections tool, you MUST analyze the returned documentation sections (especially the use_cases field) and then use the get-documentation tool to fetch ALL documentation sections that are relevant for the user's task.
### 3. svelte-autofixer
Analyzes Svelte code and returns issues and suggestions.
You MUST use this tool whenever writing Svelte code before sending it to the user. Keep calling it until no issues or suggestions are returned.
### 4. playground-link
Generates a Svelte Playground link with the provided code.
After completing the code, ask the user if they want a playground link. Only call this tool after user confirmation and NEVER if code was written to files in their project.

View File

@@ -44,5 +44,10 @@
"mongoose": "^8.0.0", "mongoose": "^8.0.0",
"node-cron": "^4.2.1", "node-cron": "^4.2.1",
"sharp": "^0.33.0" "sharp": "^0.33.0"
},
"pnpm": {
"onlyBuiltDependencies": [
"esbuild"
]
} }
} }

View File

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

View File

@@ -9,6 +9,7 @@ import AveMaria from "$lib/components/prayers/AveMaria.svelte";
import GloriaPatri from "$lib/components/prayers/GloriaPatri.svelte"; import GloriaPatri from "$lib/components/prayers/GloriaPatri.svelte";
import FatimaGebet from "$lib/components/prayers/FatimaGebet.svelte"; import FatimaGebet from "$lib/components/prayers/FatimaGebet.svelte";
import SalveRegina from "$lib/components/prayers/SalveRegina.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 BenedictusMedal from "$lib/components/BenedictusMedal.svelte";
import CounterButton from "$lib/components/CounterButton.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 // Toggle for including Luminous mysteries
let includeLuminous = true; let includeLuminous = true;
@@ -113,12 +146,14 @@ function getMysteryForWeekday(date, includeLuminous) {
let selectedMystery = getMysteryForWeekday(new Date(), includeLuminous); let selectedMystery = getMysteryForWeekday(new Date(), includeLuminous);
let currentMysteries = mysteries[selectedMystery]; let currentMysteries = mysteries[selectedMystery];
let currentMysteriesLatin = mysteriesLatin[selectedMystery]; let currentMysteriesLatin = mysteriesLatin[selectedMystery];
let currentMysteryTitles = mysteryTitles[selectedMystery];
// Function to switch mysteries // Function to switch mysteries
function selectMystery(mysteryType) { function selectMystery(mysteryType) {
selectedMystery = mysteryType; selectedMystery = mysteryType;
currentMysteries = mysteries[mysteryType]; currentMysteries = mysteries[mysteryType];
currentMysteriesLatin = mysteriesLatin[mysteryType]; currentMysteriesLatin = mysteriesLatin[mysteryType];
currentMysteryTitles = mysteryTitles[mysteryType];
} }
// Function to handle toggle change // 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} bind:this={sectionElements.start1}
data-section="start1" data-section="start1"
> >
<h3>Ave Maria</h3> <h3>Ave Maria: Glaube</h3>
<AveMaria <AveMaria
mysteryLatin="Jesus, qui adáugeat nobis fidem" mysteryLatin="Jesus, qui adáugeat nobis fidem"
mystery="Jesus, der in uns den Glauben vermehre" mystery="Jesus, der in uns den Glauben vermehre"
@@ -1166,7 +1201,7 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
bind:this={sectionElements.start2} bind:this={sectionElements.start2}
data-section="start2" data-section="start2"
> >
<h3>Ave Maria</h3> <h3>Ave Maria: Hoffnung</h3>
<AveMaria <AveMaria
mysteryLatin="Jesus, qui corróboret nobis spem" mysteryLatin="Jesus, qui corróboret nobis spem"
mystery="Jesus, der in uns die Hoffnung stärke" mystery="Jesus, der in uns die Hoffnung stärke"
@@ -1179,7 +1214,7 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
bind:this={sectionElements.start3} bind:this={sectionElements.start3}
data-section="start3" data-section="start3"
> >
<h3>Ave Maria</h3> <h3>Ave Maria: Liebe</h3>
<AveMaria <AveMaria
mysteryLatin="Jesus, qui perficiat in nobis caritátem" mysteryLatin="Jesus, qui perficiat in nobis caritátem"
mystery="Jesus, der in uns die Liebe entzünde" mystery="Jesus, der in uns die Liebe entzünde"
@@ -1206,7 +1241,7 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
bind:this={sectionElements[`secret${decadeNum}`]} bind:this={sectionElements[`secret${decadeNum}`]}
data-section="secret{decadeNum}" data-section="secret{decadeNum}"
> >
<h2>{decadeNum}. Gesätz</h2> <h2>{decadeNum}. Gesätz: {currentMysteryTitles[decadeNum - 1]}</h2>
<h3>Ave Maria <span class="repeat-count">(10×)</span></h3> <h3>Ave Maria <span class="repeat-count">(10×)</span></h3>
<AveMaria <AveMaria
mysteryLatin={currentMysteriesLatin[decadeNum - 1]} mysteryLatin={currentMysteriesLatin[decadeNum - 1]}
@@ -1252,6 +1287,11 @@ l536 389l-209 -629zM1671 934l-370 267l150 436l-378 -271l-371 271q8 -34 15 -68q10
<h3>Salve Regina</h3> <h3>Salve Regina</h3>
<SalveRegina /> <SalveRegina />
<h3>Schlussgebet</h3>
<RosaryFinalPrayer />
<h3 style="text-align: center; font-size: 2.5rem; margin-top: 2rem;"></h3>
</div> </div>
</div> </div>
</div> </div>