From 664a7b353048d39a5cf7373ab3ee5849bae5823b Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 27 May 2026 10:43:21 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20f=C3=BCge=20=C3=9Cberpr=C3=BCfung=20der?= =?UTF-8?q?=20Platzhalteranzahl=20in=20Gap-Fill-=C3=9Cbungen=20hinzu=20und?= =?UTF-8?q?=20aktualisiere=20Beispieltexte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/scripts/create-bisaya-course-content.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/scripts/create-bisaya-course-content.js b/backend/scripts/create-bisaya-course-content.js index 27922f1..b90c011 100644 --- a/backend/scripts/create-bisaya-course-content.js +++ b/backend/scripts/create-bisaya-course-content.js @@ -72,6 +72,13 @@ function collectExerciseAuditWarnings(lessonTitle, exerciseData, exerciseNumber) const answers = Array.isArray(answerData.answers) ? answerData.answers : []; if (!text || !answers.length) return warnings; + const placeholderCount = (text.match(/\{\s*gap\s*\}/gi) || []).length; + if (placeholderCount !== answers.length) { + warnings.push( + `[${lessonTitle} #${exerciseNumber}] Gap-Fill enthält ${placeholderCount} sichtbare Lücke(n), aber ${answers.length} Antwort(en).` + ); + } + const hints = []; const hintRegex = /\(([^)]+)\)/g; let match = hintRegex.exec(text); @@ -3789,14 +3796,14 @@ const BISAYA_EXERCISES = { instruction: 'Fülle die Lücken mit den richtigen Bisaya-Wörtern.', questionData: { type: 'gap_fill', - text: 'Unsa imong ginabuhat? (Was machst du?) - Nagtrabaho ko. (Ich arbeite.) | Kapoy ko. (Ich bin müde.)', + text: 'Unsa imong ginabuhat? (Was machst du?) - {gap} ko. (Ich arbeite.) | Kumusta ka? (Wie geht es dir?) - {gap} ko. (Ich bin müde.)', gaps: 2 }, answerData: { type: 'gap_fill', - answers: ['Nagtrabaho', 'ko'] + answers: ['Nagtrabaho', 'Kapoy'] }, - explanation: '"Nagtrabaho ko" = Ich arbeite, "Kapoy ko" = Ich bin müde.' + explanation: '"Nagtrabaho ko" antwortet auf die Tätigkeit; "Kapoy ko" beschreibt den Zustand.' }, { exerciseTypeId: 4, // transformation