Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
6db6d0e1a1
|
|||
c60c8a7554
|
|||
bff489b510
|
|||
6e39631df1 | |||
cc3216b4a6
|
|||
738c3d1cc4
|
|||
37c2c4babb
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 Alexander Bocken
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
31
README.md
31
README.md
@ -1,6 +1,6 @@
|
||||
# kanji
|
||||
|
||||
<img src="/../assets/kanji_front.png" alt="Front side with kanji displayed" width="49%"> <img src="/../assets/kanji_back.png" alt="Back side revealing meaning of kanji" width="49%">
|
||||
<img src="/../assets/reveal_stroke_order.gif" alt="Front side with kanji displayed" width="49%"> <img src="/../assets/kanji_back.png" alt="Back side revealing meaning of kanji" width="49%">
|
||||
|
||||
<img src="/../assets/german_front.png" alt="Front side with german word displayed" width="49%"> <img src="/../assets/german_back.png" alt="Back side revealing kanji with that meaning" width="49%">
|
||||
|
||||
@ -20,6 +20,18 @@ Hints are only sporadically used and can only be expected for difficult kanjis i
|
||||
To get the Kanji unicode characters I used this [Kanji recognition site](https://kanji.sljfaq.org/draw-canvas.html).
|
||||
Seems a lot faster than having to rely on Google Translate (plus I don't have to use Google, which is a benefit in itself.)
|
||||
|
||||
## Contributing
|
||||
|
||||
If you find a mistake, or have other ideas on how to improve the deck, please don't hesitate to [open a new issue](https://github.com/blinry/anki-fonts/issues)!
|
||||
|
||||
This deck is maintained using the [CrowdAnki](https://github.com/Stvad/CrowdAnki) add-on. If you want to contribute corrections or improvements yourself, follow these steps:
|
||||
|
||||
1. Make changes to the deck.
|
||||
2. Install the [CrowdAnki add-on](https://ankiweb.net/shared/info/1788670778).
|
||||
3. Fork and clone this repository.
|
||||
4. Use `Export -> CrowdAnki Json representation` on the deck and chose the repository's base directory.
|
||||
5. Commit the changes, and submit a pull request to this repository.
|
||||
|
||||
## Primitves
|
||||
I've been adding the seperately listed primitives as well, although that has some issues connected with it: Some/most of the primitives listed seperately do not have a unicode character associated with them. Thus I've been using two strategies:
|
||||
|
||||
@ -31,3 +43,20 @@ Both of these strategies are not optimal and I'm currently looking into other op
|
||||
## Compounds
|
||||
Compounds are added to the last kanji learned to completely understand the compound.
|
||||
E.g. "週末" (Wochenende) is added at "週" (no. 340), not "末" (no. 230).
|
||||
|
||||
## Fonts
|
||||
For Kanjis I'm using the IPAGothic font, for the stroke order I'm using Timothy Eyre's great font I found on [his website](https://www.nihilist.org.uk/). Please notice the license he has listed for this font.
|
||||
|
||||
### Importing via apkg
|
||||
|
||||
I've included an apkg file with the font files included as well as one apkg file without these font files.
|
||||
Choose the one you prefer, the one with fonts has the additional benefit of synchronising the fonts with other devices.
|
||||
|
||||
### Importing via CrowdAnki
|
||||
|
||||
Either install these fonts seperately or add the ttfs to your `collection.media` Anki folder as `_ipag.ttf` and `_KanjiStrokeOrders.ttf`.
|
||||
The latter method has the benefit of synchronising these fonts to your other devices as well.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
21
deck.json
21
deck.json
@ -52,14 +52,17 @@
|
||||
"dyn": 0,
|
||||
"extendNew": 5,
|
||||
"extendRev": 117,
|
||||
"media_files": [],
|
||||
"media_files": [
|
||||
"_KanjiStrokeOrders.ttf",
|
||||
"_ipag.ttf"
|
||||
],
|
||||
"mid": 1605541432231,
|
||||
"name": "Kanji",
|
||||
"note_models": [
|
||||
{
|
||||
"__type__": "NoteModel",
|
||||
"crowdanki_uuid": "1d40ef02-c9ff-11ea-ab22-9cb6d013a4a3",
|
||||
"css": ".card {\n\tmargin-top: 0px;\n\tline-height: 20px;\n\theight: 100%;\n\tfloat: left;\n\tfont-family: Helvetica, \"IPAGothic\", Arial,Verdana,sans-serif;\n}\n.card p {\n\tpadding: 0px 0;\n\tposition: relative;\n}\n.card p.kanji{\n\tfont-size: 70px;\n \tfont-family: IPAGothic;\n\tcolor:#88C0D0;\n\theight:20vh;\n}\n.card p.kanji_card2{\n\tfont-size: 70px;\n \tfont-family: IPAGothic;\n\tcolor:#88C0D0;;\n}\n.card p.kanji_card2 i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tfont-style: normal;\n}\n.card p.kanji i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tfont-style: normal;\n}\n.card p.kanji_back{\n\tfont-size: 20px;\n \tfont-family: IPAGothic;\n\tcolor: #5E81AC;\n\theight:5vh;\n}\n.card p.kanji_back i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tfont-style: normal;\n}\n.card p.kanji_back i:before {\n\tcontent: \"- \";\n\tpadding-left: 5px;\n\tcolor:#4C566A;\n}\n.card p.kanji i:before {\n\tcontent: \"- \";\n\tpadding-left: 5px;\n\tcolor:#4C566A;\n}\n.card p.compounds {\n\tfont-size: 20px;\n\ttext-decoration: none;\n\tcolor: #5E81AC;\n}\n.card p.compounds i{\n\tfont-style: normal;\n\tfont-size: 22px;\n\ttext-decoration: none;\n\tcolor: #8FBCBB;\n}\n.card p.compounds_meaning {\n\ttext-align: right;\n\tfont-size: 20px;\n\ttext-decoration: none;\n\tcolor: #8FBCBB;\n}\n.card #explanation{\n\theight:20vh;\n\tfont-size: 20px;\n\ttext-align:left;\n\tcolor:#ECEFF4;\n}\n.card #explanation i{\n\tfont-style:normal;\n\tcolor: #D08770;\n}\n.card #explanation b{\n\tfont-style:normal;\n\tcolor:#88C0D0;\n}\n.card #notes {\n\tfont-size:16px;\n\tcolor:#4C566A;\n}\n.card #notes u{\n\tfont-size:20px;\n\ttext-decoration: none;\n}\n.card p.meaning {\n\twidth=100;\n\ttext-align:center;\n\tfont-size: 40px;\n\tcolor:#88C0D0;\n}\n.card p.meaning i {\n\tfont-style: normal;\n\ttext-align:left;\n \tfont-size: 12px;\n\tcolor:#E5E9F0;\n}\n.card p.meaning_back{\n\tfont-size: 20px;\n\tfont-family: Helvetica, Arial;\n\tcolor: #5E81AC;\n\theight:5vh;\n}\n.card p.meaning_back i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tfont-style: normal;\n}\n#no {\n\tcolor:#4C566A;\n\tfont-family: Helvetica,Arial,Verdana,sans-serif;\n\tfont-size: 20px;\n\ttext-align:right;\n\tposition:fixed;\n \tbottom: 20px;\n \tright: 20px;\n}\n#lesson {\n\tcolor:#4C566A;\n\tfont-family: Helvetica,Arial,Verdana,sans-serif;\n\tposition: absolute;\n\tfont-size: 20px;\n\ttext-align:left;\n\tposition: fixed;\n\tbottom: 20px;\n\tleft: 20px;\n}\n\n\n/* ANDROID SETTINGS */\n.android .card p.kanji{\n\tcolor:#000000;\n}\n.android .card p.kanji i {\n\tcolor:#000000;\n}\n.android .card p.kanji_back{\n \tcolor:#000000;\n}\n.android .card p.kanji_back i {\n\tcolor:#000000;\n}\n.android .card p.kanji_back i {\n\tcolor:#000000;\n}\n.android .card p.kanji i:before {\n\tcolor:#000000;\n}\n.android .card p.compounds {\n\tcolor:#000000;\n}\n.android .card p.compounds i{\n\tcolor:#000000;\n}\n.android .card p.compounds_meaning {\n\tcolor:#000000;\n}\n.android .card #explanation{\n\tcolor:#000000;\n}\n.android .card #notes {\n\tcolor:#000000;\n}\n.android .card p.meaning {\n \tcolor:#000000;\n}\n.android .card p.meaning i{\n \tcolor:#000000;\n}\n.android .card p.meaning_back{\n\tcolor:#000000;\n}\n.android .card p.meaning_back i {\n\tcolor:#000000;\n}\n.android .card p.kanji_card2{\n\tcolor:#000000;\n}\n.android .card p.kanji_card2 i {\n\tcolor:#000000;\n}\n.android #no {\n\tcolor:#000000;\n}\n.android #lesson {\n\tcolor:#000000;\n}",
|
||||
"css": "@font-face {\n font-family: 'kanji_strokeorder';\n font-style: normal;\n font-weight: 400;\n src: url(_KanjiStrokeOrders.ttf) format('truetype');\n }\n\n@font-face {\n font-family: 'IPAGothic';\n font-style: normal;\n font-weight: 400;\n src: url(_ipag.ttf) format('truetype');\n }\n\n.card {\n\tmargin-top: 0px;\n\tline-height: 20px;\n\theight: 100%;\n\tfloat: left;\n\tfont-family: Helvetica, \"IPAGothic\", Arial,Verdana,sans-serif;\n}\n.card p {\n\tpadding: 0px 0;\n\tposition: relative;\n}\n.card p.kanji{\n\tfont-size: 70px;\n \tfont-family: IPAGothic;\n\tcolor:#88C0D0;\n\theight:20vh;\n}\n.card p.kanji i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 20px;\n\tpadding-left: 5px;\n\tfont-style: normal;\n}\n.card p.kanji_card2{\n\tfont-size: 70px;\n \tfont-family:IPAGothic;\n\tcolor:#88C0D0;\n}\n.card p.kanji_card2 i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tpadding-left: 5px;\n\tfont-style: normal;\n}\n.card p.kanji_back{\n\tfont-size: 20px;\n \tfont-family: IPAGothic;\n\tcolor: #5E81AC;\n\theight:5vh;\n}\n.card p.kanji_back i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tfont-style: normal;\n}\n.card p.primitive_correction before {\n\tcontent: \"- \";\n\tpadding-left: 5px;\n\tcolor:#4C566A;\n}\n.card p.compounds {\n\tfont-size: 20px;\n\ttext-decoration: none;\n\tcolor: #5E81AC;\n}\n.card p.compounds i{\n\tfont-style: normal;\n\tfont-size: 22px;\n\ttext-decoration: none;\n\tcolor: #8FBCBB;\n}\n.card p.compounds_meaning {\n\ttext-align: right;\n\tfont-size: 20px;\n\ttext-decoration: none;\n\tcolor: #8FBCBB;\n}\n.card #explanation{\n\theight:20vh;\n\tfont-size: 20px;\n\ttext-align:left;\n\tcolor:#ECEFF4;\n}\n.card #explanation i{\n\tfont-style:normal;\n\tcolor: #D08770;\n}\n.card #explanation b{\n\tfont-style:normal;\n\tcolor:#88C0D0;\n}\n.card #notes {\n\tfont-size:16px;\n\tcolor:#4C566A;\n}\n.card #notes u{\n\tfont-size:20px;\n\ttext-decoration: none;\n}\n.card p.meaning {\n\twidth=100;\n\ttext-align:center;\n\tfont-size: 40px;\n\tcolor:#88C0D0;\n}\n.card p.meaning i {\n\tfont-style: normal;\n\ttext-align:left;\n \tfont-size: 12px;\n\tcolor:#E5E9F0;\n}\n.card p.meaning_back{\n\tfont-size: 20px;\n\tfont-family: Helvetica, Arial;\n\tcolor: #5E81AC;\n\theight:5vh;\n}\n.card p.meaning_back i {\n\tfont-family: Helvetica, IPAGothic;\n\tcolor:#4C566A;\n\tfont-size: 16px;\n\tfont-style: normal;\n}\n#no {\n\tcolor:#4C566A;\n\tfont-family: Helvetica,Arial,Verdana,sans-serif;\n\tfont-size: 20px;\n\ttext-align:right;\n\tposition:fixed;\n \tbottom: 20px;\n \tright: 20px;\n}\n#lesson {\n\tcolor:#4C566A;\n\tfont-family: Helvetica,Arial,Verdana,sans-serif;\n\tposition: absolute;\n\tfont-size: 20px;\n\ttext-align:left;\n\tposition: fixed;\n\tbottom: 20px;\n\tleft: 20px;\n}\n\n\n/* ANDROID SETTINGS */\n.android .card p.kanji{\n\tfont-size:120px;\n\t/*color:#000000;*/\n}\n.android.card.night_mode {\n\tbackground-color:#000000;\n}\n.android .card p.kanji_card2{\n\tfont-size:120px;\n}\n",
|
||||
"flds": [
|
||||
{
|
||||
"font": "Helvetica",
|
||||
@ -191,10 +194,10 @@
|
||||
"did": null,
|
||||
"name": "Card 1",
|
||||
"ord": 0,
|
||||
"qfmt": "<P class='kanji'>{{kanji}}\n\t{{#primitive_correction}}<br>\n\t\t<i>{{primitive_correction}}</i>\n\t{{/primitive_correction}}\n</P>\n\n<P class=\"compounds\">{{compounds}}</P>\n\n<div id=\"no\">{{no}}</div>\n\n<div id=\"lesson\">Lektion {{lesson}}</div>"
|
||||
"qfmt": "<P class='kanji'>\n\t<span onclick=\"ShowStrokeOrder();\" id=\"Kanji\">\n\t\t{{kanji}}\n\t</span>\n{{#primitive_correction}}\t\n\t<br> <i>- {{primitive_correction}}</i>\n{{/primitive_correction}}\n</P>\n\n<P class=\"compounds\">{{compounds}}</P>\n\n<div id=\"no\">{{no}}</div>\n\n<div id=\"lesson\">Lektion {{lesson}}</div>\n\n<script>\nfunction ShowStrokeOrder() {\n /* document.getElementById(\"HiddenOrder\").style.display = \"block\";*/\n\tif(document.getElementById(\"Kanji\").style.fontFamily == 'kanji_strokeorder'){\n\t\tdocument.getElementById(\"Kanji\").style.fontFamily=\"IPAGothic\";\n\t}\n\telse{\n\t\tdocument.getElementById(\"Kanji\").style.fontFamily=\"kanji_strokeorder\";\n\t}\n}\n</script>"
|
||||
},
|
||||
{
|
||||
"afmt": "\n<P class='meaning_back'>{{meaning}}<br>\n\t{{#primitive}} \n\t\t<i>Primitive: {{primitive}}</i>\n\t{{/primitive}}\n</P>\n\n<P class='kanji_card2'>{{kanji}}\n\t{{#primitive_correction}}<br>\n\t\t<i>{{primitive_correction}}</i>\n\t{{/primitive_correction}}\n</P>\n\n\n{{#explanation}}\n\t<hr>\n{{/explanation}}\n\n<div id='explanation'>\n\t{{explanation}}\n</div>\n\n{{#notes}}\n<div id='notes'>\n\t<u>Notiz:</u>\n\t{{notes}}\n</div>\n{{/notes}}\n\n<P class=\"compounds\">\n{{#compounds}}\n\t<i>Komposita:</i><br>\n\t{{compounds}}<br>\n\t{{compounds_meaning}}\n{{/compounds}}\n</P>\n\n<div id=\"no\">{{no}}</div>\n<div id=\"lesson\">Lektion {{lesson}}</div>\n\n",
|
||||
"afmt": "\n<P class='meaning_back'>{{meaning}}<br>\n\t{{#primitive}} \n\t\t<i>Primitive: {{primitive}}</i>\n\t{{/primitive}}\n</P>\n\n<P class='kanji_card2'>\n\t<span onclick=\"ShowStrokeOrder();\" id=\"Kanji\">\n\t\t{{kanji}}\n\t</span>\n{{#primitive_correction}}\t\n\t<br> <i>- {{primitive_correction}}</i>\n{{/primitive_correction}}\n</P>\n\n{{#explanation}}\n\t<hr>\n{{/explanation}}\n\n<div id='explanation'>\n\t{{explanation}}\n</div>\n\n{{#notes}}\n<div id='notes'>\n\t<u>Notiz:</u>\n\t{{notes}}\n</div>\n{{/notes}}\n\n<P class=\"compounds\">\n{{#compounds}}\n\t<i>Komposita:</i><br>\n\t{{compounds}}<br>\n\t{{compounds_meaning}}\n{{/compounds}}\n</P>\n\n<div id=\"no\">{{no}}</div>\n<div id=\"lesson\">Lektion {{lesson}}</div>\n\n\n<script>\nfunction ShowStrokeOrder() {\n /* document.getElementById(\"HiddenOrder\").style.display = \"block\";*/\n\tif(document.getElementById(\"Kanji\").style.fontFamily == 'kanji_strokeorder'){\n\t\tdocument.getElementById(\"Kanji\").style.fontFamily=\"IPAGothic\";\n\t}\n\telse{\n\t\tdocument.getElementById(\"Kanji\").style.fontFamily=\"kanji_strokeorder\";\n\t}\n}\n</script>\n\n",
|
||||
"bafmt": "",
|
||||
"bfont": "",
|
||||
"bqfmt": "",
|
||||
@ -1589,7 +1592,7 @@
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"beachte Reihenfolge",
|
||||
"4"
|
||||
],
|
||||
"guid": "L<6f1V*oVD",
|
||||
@ -3942,7 +3945,7 @@
|
||||
"194",
|
||||
"胴",
|
||||
"Rumpf",
|
||||
"Rümpfe wie Bäume fällen, identisch machen damit sie nicht verkeilen",
|
||||
"<b>Rümpfe</b> wie Bäume fällen, <i>identisch</i> machen damit sie nicht verkeilen",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
@ -33124,8 +33127,8 @@
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ohne 艹 und 十 (der vertikale Strich fällt stehts mit einem anderen Zeichen überein)",
|
||||
"",
|
||||
"ohne 艹 und 十",
|
||||
"der vertikale Strich fällt stehts mit einem anderen Zeichen überein",
|
||||
"40"
|
||||
],
|
||||
"guid": "MVynpau[<U",
|
||||
@ -41116,7 +41119,7 @@
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"ohne&nbsp;扌",
|
||||
"ohne 扌",
|
||||
"",
|
||||
"53"
|
||||
],
|
||||
|
BIN
media/_KanjiStrokeOrders.ttf
Normal file
BIN
media/_KanjiStrokeOrders.ttf
Normal file
Binary file not shown.
BIN
media/_ipag.ttf
Normal file
BIN
media/_ipag.ttf
Normal file
Binary file not shown.
Reference in New Issue
Block a user