Legg til Fast-track-flashcards: 30 konsise kort + filter og dyplenke

Eget flashcard-sett (category: "fasttrack") som tester huskereglene,
skillene og eksamensfellene fra de fem Fast-track-modulene — kort og
konsist, uten ukesoverlappen.

- flashcards.json: 30 nye kort (7/5/7/7/4 per modul), alle med kort front
- flashcards.js: «Fast-track»-filter, categoryLabel, og fcInit(initialFilter)
- app.js: ruter #/flashcards/<filter> for dyplenke
- index.html: «Start flashcards →»-CTA på Fast-track-landingssiden
- style.css: stil for test-CTA

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-30 21:48:09 +02:00
parent 0f4370626c
commit 5b5a96d276
6 changed files with 285 additions and 5 deletions

View File

@@ -15,7 +15,7 @@ function parseRoute() {
return parts[1] ? { name: 'fasttrack-module', moduleId: parseInt(parts[1], 10) } : { name: 'fasttrack' };
}
if (parts[0] === 'tldr') return { name: 'tldr' };
if (parts[0] === 'flashcards') return { name: 'flashcards' };
if (parts[0] === 'flashcards') return { name: 'flashcards', filter: parts[1] || null };
if (parts[0] === 'quiz') return { name: 'quiz' };
if (parts[0] === 'eksamen') return { name: 'eksamen' };
return { name: 'home' };
@@ -73,7 +73,7 @@ async function route() {
crumbCurrent.textContent = crumb;
// After DOM is in place, init relevant mode
if (r.name === 'flashcards') await SMF.fcInit();
if (r.name === 'flashcards') await SMF.fcInit(r.filter);
else if (r.name === 'quiz') await SMF.quizInit();
else if (r.name === 'eksamen') await SMF.examInit();