feat(app): stroke order for kanji and kana, from KanjiVG

KanjiVG's strokes come with the app (assets/kanjivg/, CC BY-SA 3.0, its
notice in the licence list): 94 gzipped files, one per 256 code points,
2.7 MB in all, a file read the first time a character of it is asked for
(StrokeRepository, app-wide beside the maps). The strokes are SVG path
data, read with path_parsing (the Flutter team's, pure Dart, already in
the build through flutter_svg), so the model can flatten them into points
without dart:ui, as checking handwriting will.

A character's sheet traces its strokes in order over those to come, with
its stroke count, meanings, readings, level and the components KanjiVG
splits it into, each a tap away. It opens from a studied character's
answer (Stroke order) and from a character found in the dictionary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MMm7usAo6q9ZZRoPkWjoxi
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-09 15:35:00 +02:00
commit ed5bb3f6b1
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -0,0 +1,13 @@
# Stroke data
The files in this folder derive from **KanjiVG** (<https://kanjivg.tagaini.net>),
the release of 2026-07-14, © 2009–2013 Ulrich Apel, distributed under the
Creative Commons Attribution-Share Alike 3.0 licence
(<https://creativecommons.org/licenses/by-sa/3.0/>). They are distributed under
the same licence. `LICENSE.txt` is KanjiVG's notice, which the app's licence
list shows.
`halkyon_learn_curator`'s `curate kanjivg` writes them (see its README): each
character's strokes as KanjiVG draws them and the components KanjiVG splits it
into, keyed by the code point of KanjiVG's entry, in one gzipped JSON file for
every 256 code points. Nothing else is changed.