feat: programmatic import of lists with sublists, "proper" styling
This commit is contained in:
parent
11cae6aad1
commit
0c73ba8263
|
@ -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] ??= [];
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -4,9 +4,40 @@
|
|||
|
||||
{% block body %}
|
||||
<style>
|
||||
.taiwan > .kanji-card { background-color: var(--bs-success); }
|
||||
.sn > .kanji-card { background-color: var(--bs-danger); }
|
||||
.sln > .kanji-card { background-color: var(--bs-warning); }
|
||||
.sn > .kanji-card { background-color: var(--bs-danger); }
|
||||
.sln > .kanji-card { background-color: var(--bs-warning); }
|
||||
|
||||
.taiwan > .kanji-card { background-color: hsl(300, 100%, 80%); color: black; }
|
||||
|
||||
.zhcn-n1 > .kanji-card { background-color: hsl(220, 100%, 90%); color: black; }
|
||||
.zhcn-n2 > .kanji-card { background-color: hsl(220, 100%, 80%); color: black; }
|
||||
.zhcn-n3 > .kanji-card { background-color: hsl(220, 100%, 60%); color: black; }
|
||||
|
||||
.hsk-n1 > .kanji-card { background-color: hsl(180, 100%, 90%); color: black; }
|
||||
.hsk-n2 > .kanji-card { background-color: hsl(180, 100%, 85%); color: black; }
|
||||
.hsk-n3 > .kanji-card { background-color: hsl(180, 100%, 80%); color: black; }
|
||||
.hsk-n4 > .kanji-card { background-color: hsl(180, 100%, 75%); color: black; }
|
||||
.hsk-n5 > .kanji-card { background-color: hsl(180, 100%, 70%); color: black; }
|
||||
.hsk-n6 > .kanji-card { background-color: hsl(180, 100%, 65%); color: black; }
|
||||
.hsk-n7_9 > .kanji-card { background-color: hsl(180, 100%, 40%); color: black; }
|
||||
|
||||
.kanken-n10 > .kanji-card { background-color: hsl( 0, 100%, 90%); color: black; }
|
||||
.kanken-n9 > .kanji-card { background-color: hsl( 0, 100%, 80%); color: black; }
|
||||
.kanken-n8 > .kanji-card { background-color: hsl( 0, 100%, 70%); color: black; }
|
||||
.kanken-n7 > .kanji-card { background-color: hsl( 0, 100%, 60%); color: black; }
|
||||
.kanken-n6 > .kanji-card { background-color: hsl( 0, 100%, 50%); color: black; }
|
||||
.kanken-n5 > .kanji-card { background-color: hsl( 0, 100%, 40%); color: black; }
|
||||
.kanken-n4 > .kanji-card { background-color: hsl( 0, 100%, 30%); color: white; }
|
||||
.kanken-n3 > .kanji-card { background-color: hsl( 0, 100%, 20%); color: white; }
|
||||
.kanken-np2 > .kanji-card { background-color: hsl( 85, 100%, 70%); color: black; }
|
||||
.kanken-n2 > .kanji-card { background-color: hsl( 80, 100%, 50%); color: black; }
|
||||
.kanken-np1 > .kanji-card { background-color: hsl( 60, 100%, 90%); color: black; }
|
||||
.kanken-np1n1 > .kanji-card { background-color: hsl( 55, 100%, 70%); color: black; }
|
||||
.kanken-n1 > .kanji-card { background-color: hsl( 50, 100%, 50%); color: black; }
|
||||
|
||||
.bushu > .kanji-card { background-color: hsl( 45, 100%, 0%); color: white; }
|
||||
.kyuujitai > .kanji-card { background-color: hsl( 45, 100%, 30%); color: white; }
|
||||
.kyoyou > .kanji-card { background-color: hsl( 45, 0%, 50%); color: white; }
|
||||
</style>
|
||||
|
||||
<div class="example-wrapper">
|
||||
|
|
Loading…
Reference in New Issue