diff --git a/src/Controller/KanjiController.php b/src/Controller/KanjiController.php index 8836b46..0a596e5 100644 --- a/src/Controller/KanjiController.php +++ b/src/Controller/KanjiController.php @@ -32,9 +32,26 @@ class KanjiController extends AbstractController 'sn' => $this->anki->getKnownSnKanjiCounts(), 'sln' => $this->anki->getKnownSlnKanjiCounts(), 'unicode' => $this->anki->getUnicodeKanji(), - 'taiwan' => $this->charList->getList('taiwan')['chars'], ]; + // @formatter:off + $storedLists = [ + 'taiwan', 'bushu', 'kyoyou', 'kyuujitai', 'kanken', 'hsk', 'zhcn', + ]; + // @formatter:on + foreach ($storedLists as $storedName) { + $storedList = $this->charList->getList($storedName); + + // Simple list + if (key_exists('chars', $storedList)) { + $lists[$storedName] = $storedList['chars']; + } else { + foreach ($storedList['sublists'] as $subname => $sublist) { + $lists["$storedName-$subname"] = $sublist['chars']; + } + } + } + foreach ($lists as $listName => $list) { foreach (array_keys($list) as $char) { $ret[$char] ??= []; diff --git a/src/Service/CharListService.php b/src/Service/CharListService.php index 11f61c4..8f9423f 100644 --- a/src/Service/CharListService.php +++ b/src/Service/CharListService.php @@ -49,10 +49,11 @@ class CharListService } // Has children lists + $ret['sublists'] = []; while (($title = fgets($file)) !== false) { $title = mb_trim($title); $code = mb_trim(fgets($file)); - $ret[$code] = [ + $ret['sublists'][$code] = [ 'title' => mb_trim($title), 'full_title' => "{$ret['name']} {$title}", 'chars' => self::getKanjiBlockSet($file) diff --git a/templates/kanji/grid.html.twig b/templates/kanji/grid.html.twig index f2155d2..a2b3f3a 100644 --- a/templates/kanji/grid.html.twig +++ b/templates/kanji/grid.html.twig @@ -4,9 +4,40 @@ {% block body %}