Let a lesson list review keys beside the two it introduces
A lesson's `keys` was capped at two outright, which made it impossible to write "K, with the four keys before it still in play". The cap now counts only what is *new*; keys already taught can be listed freely, and the spotlight falls on the new ones alone, so a lesson titled "K" drills K instead of spreading itself evenly over all five keys it names. A round that introduces nothing new still spotlights its whole list - that is the "mixed" replay, unchanged. Also documents `unlocks:` paths as relative to the library root. Absolute and "~" paths still resolve, so an existing file keeps working, but a relative path survives moving the library. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
# The typing game's lesson plan, referenced from config.yml's general.tippen.curriculum_file.
|
||||
#
|
||||
# Every lesson: title, subtitle (read aloud). Then either:
|
||||
# - keys: the letters-kind key(s) this round drills. The loader tracks which keys were
|
||||
# already active: the first time a key appears its lesson is "isolated" (heavy
|
||||
# weight, alone); the second (identical) appearance is "mixed" (lighter weight,
|
||||
# blended with everything learned so far). Two lessons with the same `keys` back to
|
||||
# back is exactly how you write "isolated, then mixed" - no separate flag needed.
|
||||
# - keys: the letters-kind keys this round has on the table. At most two of them may
|
||||
# be new; the rest are keys already taught, written out to say "these are in play
|
||||
# too". The loader tracks which keys were already active and spotlights only what is
|
||||
# new, so `keys: [f, j, a, d, k]` right after `[f, j, a, d]` is a K lesson with the
|
||||
# other four as review ("isolated" - heavy weight on K). A round that introduces
|
||||
# nothing new spotlights its whole list instead ("mixed" - lighter weight, blended
|
||||
# with everything learned so far), so two lessons with the same `keys` back to back
|
||||
# is exactly how you write "isolated, then mixed" - no separate flag needed.
|
||||
# - drill: true - a pure review round, no new content, whatever is active so far.
|
||||
# - kind + words - a fragments/words/sentences consolidation round (dive mode by
|
||||
# default; `mode:` overrides it - see the backend's `ELIGIBLE_MODES` for which
|
||||
@@ -18,8 +21,11 @@
|
||||
#
|
||||
# unlocks: <path>
|
||||
#
|
||||
# A path into the music library (see config.yml's general.library.root - absolute, or
|
||||
# relative to it; "~" is expanded). Passing this lesson (two stars, or five attempts
|
||||
# A path into the music library, written relative to config.yml's
|
||||
# general.library.root - "Musik/Klaviersammlung/Lied.mp3", not a path from "/" or "~".
|
||||
# (An absolute path, or one starting with "~", still resolves, so an old file keeps
|
||||
# working - but relative is the form to write, since it survives moving the library.)
|
||||
# Passing this lesson (two stars, or five attempts
|
||||
# regardless of score) unlocks that track and everything before it in the same album,
|
||||
# inclusive - so pointing at an album's last track unlocks the whole album, and
|
||||
# pointing at track 5 of an audiobook unlocks chapters 1 through 5. The web front-end
|
||||
@@ -59,7 +65,7 @@ worlds:
|
||||
subtitle: "Die Ringfinger"
|
||||
keys: [s, l]
|
||||
# Example - unlocks tracks 1 through 5 (inclusive) of this album:
|
||||
# unlocks: ~/Music/Musik/Kinderparty - Kinderparty Lieder/05 - Lied.mp3
|
||||
# unlocks: "Musik/Kinderparty - Kinderparty Lieder/05 - Lied.mp3"
|
||||
- title: "S und L üben"
|
||||
subtitle: "Die neuen Tasten festigen"
|
||||
keys: [s, l]
|
||||
@@ -195,7 +201,7 @@ worlds:
|
||||
drill: true
|
||||
# Example - unlocks a whole audiobook (its last chapter, inclusive of every
|
||||
# chapter before it):
|
||||
# unlocks: ~/Music/Hörbücher/Conni - Conni in den Bergen/06 - Teil.mp3
|
||||
# unlocks: "Hörbücher/Conni - Conni in den Bergen/06 - Teil.mp3"
|
||||
|
||||
- number: 3
|
||||
title: "Nach unten"
|
||||
@@ -295,7 +301,7 @@ worlds:
|
||||
drill: true
|
||||
# Example - unlocks a whole podcast show (its most recent episode, and every
|
||||
# earlier one of the same show, chronologically):
|
||||
# unlocks: ~/Music/Kinderpodcasts/Wissen macht Ah/20260101 - Neu.mp3
|
||||
# unlocks: "Kinderpodcasts/Wissen macht Ah/20260101 - Neu.mp3"
|
||||
|
||||
- number: 4
|
||||
title: "Große Buchstaben"
|
||||
|
||||
Reference in New Issue
Block a user