Baustein 2: Inhalte einlesen und pruefen, Handouts, Suche, Glossar

Die fachlichen Inhalte liegen als Dateien unter content/ und werden beim
Start eingelesen, geprueft und in den Speicher geladen.

- Inhaltslader mit Zod-Schemata und Querverweispruefung
- Fehlermeldungen nennen Datei und Zeile, gesammelt statt beim ersten
  Fehler geworfen; die Anwendung startet bei Fehlern nicht
- npm run inhalte:pruefen prueft ohne Start
- Handout-Ansicht mit festem Aufbau, Uebersicht nach Themenbloecken
- Volltextsuche mit Gewichtung und Trefferausschnitt
- Gelesen-Markierung je Handout
- Glossar mit Suche und automatischer Verlinkung in den Handouts
- Beispielinhalte: 4 Wochen, 12 Handouts, 24 Merkkarten, 4 Aufgaben,
  4 Checklisten, 2 Lernzielkontrollen, 24 Glossareintraege
- rahmenplan.yaml aus FIAusbV 2020 und KMK-Rahmenlehrplan, mit Fundstellen
- gray-matter entfernt, YAML-Kopf wird selbst herausgeloest
- npm run screenshots nimmt die Bilder fuer die Anleitung auf
- 39 neue Tests, insgesamt 68

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-10 07:56:38 +02:00
co-authored by Claude Opus 5
parent e856349cd4
commit 1af5613e9b
70 changed files with 4779 additions and 124 deletions
+53
View File
@@ -82,3 +82,56 @@ Erstfassung entsteht deshalb vollständig auf `feat/lernbar-erstfassung`.
---
<!-- Weitere Entscheidungen werden unten angefügt und fortlaufend nummeriert. -->
## E10 · Rahmenplan: A1–A10, B1–B3, C1–**C5**
Der Auftrag nennt die Berufsbildpositionen `A 1 bis A 10`, `B 1 bis B 3` und
`C 1 bis C 4`. Die Verordnung selbst gliedert anders: Sie deckt alle vier
Fachrichtungen ab und hat deshalb sechs Abschnitte. Übersetzt:
| Kürzel hier | Abschnitt der FIAusbV | Inhalt |
|---|---|---|
| A1 – A10 | Abschnitt A | fachrichtungsübergreifend |
| B1 – B3 | Abschnitt C | Fachrichtung Systemintegration |
| C1 – C5 | Abschnitt F | integrativ zu vermitteln |
Abweichung: Abschnitt F hat **fünf** Positionen, nicht vier. Die fünfte
(„Vernetztes Zusammenarbeiten unter Nutzung digitaler Medien") ist 2020 neu
dazugekommen. Sie wegzulassen würde ausgerechnet in der Abdeckungsansicht eine
Lücke erzeugen, die gegenüber der IHK zählt. Deshalb sind alle fünf drin.
Jede Position trägt im Feld `verordnung` ihre amtliche Fundstelle, damit die
Übersetzung nachvollziehbar bleibt.
## E11 · Kennung einer Merkkarte: Handout-Kürzel plus laufende Nummer
Eine Karte heißt `N3-1`, `N3-2` und so weiter – abgeleitet aus dem Handout und
der Reihenfolge im YAML-Kopf. Damit steht die Kennung fest, ohne dass sie in der
Datei gepflegt werden muss.
Der Preis: Wird eine Karte **mittendrin** eingefügt oder gelöscht, verschieben
sich die Kennungen der folgenden, und ihr Lernstand rutscht mit. Neue Karten
gehören deshalb ans Ende der Liste. Bei einem Handout mit ein bis drei Karten
ist das zumutbar; eine gepflegte Kennung je Karte wäre mehr Aufwand für die
Person, die Inhalte schreibt, als sie einbringt.
## E12 · Glossarverweise: Link statt Überfahren
Der Auftrag lässt die Wahl zwischen automatischer Verlinkung und einer
Erklärung beim Überfahren mit der Maus. Es wird beides, aber der Link führt:
Ein reiner `title`-Hinweis ist am Handy nicht erreichbar und mit der Tastatur
nur mit Mühe. Der Verweis zeigt auf die Stelle im Glossar und trägt die
Erklärung zusätzlich im `title`.
Zurückhaltung ist eingebaut: Jeder Begriff wird höchstens einmal je Seite
verlinkt, und nie innerhalb von Code, Überschriften, Tabellenköpfen oder
bestehenden Verweisen. Ein Text, in dem jedes zweite Wort unterstrichen ist,
liest sich schlechter als einer ganz ohne.
## E13 · Kein `gray-matter`
Der YAML-Kopf einer Markdown-Datei wird selbst herausgelöst (zehn Zeilen).
Gründe: `gray-matter` merkt sich Ergebnisse und liefert beim zweiten Einlesen
desselben Textes ein Objekt ohne das Feld `matter` – im Betrieb fällt das nie
auf, im Test sofort. Und der Zeilenversatz für die Fehlermeldungen ist so
nachweislich richtig statt nachgebaut.