Add glossary decks
This commit is contained in:
@@ -48,6 +48,12 @@ data/ ──[Stage 2: amateurfunk_anki.py]──► anki/
|
||||
├── amateurfunk-technische-kenntnisse-a.apkg
|
||||
├── amateurfunk-betriebliche-kenntnisse.apkg
|
||||
└── amateurfunk-kenntnisse-von-vorschriften.apkg
|
||||
|
||||
shorthand.json ──[Stage 2b: amateurfunk_shorthand.py]──► anki/
|
||||
└── amateurfunk-abkuerzungen-q-gruppen.apkg
|
||||
|
||||
technical.json ──[Stage 2c: amateurfunk_technical.py]──► anki/
|
||||
└── amateurfunk-technische-abkuerzungen.apkg
|
||||
```
|
||||
|
||||
### Stage 1 — `amateurfunk_fetch.py`
|
||||
@@ -92,6 +98,45 @@ data/ ──[Stage 2: amateurfunk_anki.py]──► anki/
|
||||
The Anki design decisions (shuffle seeding, deterministic build epoch,
|
||||
SVG dark-mode handling, schema choices) live in `DESIGN.md` §7.
|
||||
|
||||
### Stage 2b — `amateurfunk_shorthand.py`
|
||||
|
||||
A sibling builder for a standalone reference deck of Q-groups and
|
||||
operating abbreviations — the ones in the exam plus the most common
|
||||
on-air shorthand the exam never covers (real operating knowledge, not
|
||||
just the test). Content lives in the hand-curated `shorthand.json`
|
||||
(editorial, tracked in git, like `explanations.json`); the
|
||||
`references/Q-Codes.md` reference is where the exam-present codes were
|
||||
catalogued.
|
||||
|
||||
Each code is one Anki *note* with two card templates — forward
|
||||
(code → meaning) and reverse (meaning → code) — so a single record
|
||||
drives both directions. A Q-group means one thing as a statement
|
||||
(`QSO`) and another as a question (`QSO?`), so each Q-group yields two
|
||||
notes; plain abbreviations yield one. All IDs/GUIDs are hashed from the
|
||||
displayed code form (stable re-import). The deck is catalog-independent
|
||||
and fully deterministic; it only consults `data/` to borrow the
|
||||
manifest build epoch when present. Low-level apkg/SQLite machinery is
|
||||
imported from `amateurfunk_anki.py` so the two stay in lockstep. The
|
||||
glossary machinery shared with Stage 2c (two-template note type,
|
||||
two-cards-per-note writer, packager, build-epoch resolver, entry
|
||||
validator) also lives here.
|
||||
|
||||
### Stage 2c — `amateurfunk_technical.py`
|
||||
|
||||
A third glossary deck, same card mechanics as Stage 2b (one note,
|
||||
forward+reverse templates), for the *technical* vocabulary rather than
|
||||
operating shorthand: modulation/modes (SSB, FM, CW), signal domains
|
||||
(NF, HF, ZF), building blocks (VFO, PLL, AGC), components, measurements
|
||||
(dB, SWR, PEP), propagation, digital modes, and the
|
||||
organisations/regulations (ITU, CEPT, EMV) — exam terms plus common HAM
|
||||
abbreviations beyond the exam. Content lives in the curated
|
||||
`technical.json`; each entry carries a German `category` (Betriebsart,
|
||||
Bauteil, …) shown on the card and used as a `kategorie-*` tag. The
|
||||
shared glossary machinery is imported from `amateurfunk_shorthand.py`;
|
||||
this script only adds the data shape, the deck/model names, and the tag
|
||||
scheme. IDs live in their own `technical` namespace so the two glossary
|
||||
decks never collide on import.
|
||||
|
||||
## Repo conventions
|
||||
|
||||
- Python 3.11+, standard library only. No third-party dependencies
|
||||
|
||||
Reference in New Issue
Block a user