I’m loving Wani Kani so far, been doing it for a month or two, it’s fantastic for learning to recognize kanji and remember readings.
That said, I also like knowing how to write kanji, and for that I’m using an Android app called “Kanji study” which is pretty great. But I’d like to sync the kanji I’m learning there with the kanji I’m learning on WaniKani.
Kanji Study lets you import ordered lists of kanji from a text file. So I wonder if it’s possible somewhere to export the ordered list of kanji used in WaniKani so I can import them and practice writing in this other app?
I use the app called Ringotan, it’s nice, because it supports WK by default
If you have WKOF installed (if not, go to here), you can just open up your developer console (Ctrl+Shift+I on chrome), and paste in the following piece of code:
Hey! I’m the developer of Ringotan mentioned above, and was pinged because of the above post.
Just to try and give you the sales pitch: Ringotan was developed from the ground-up to teach you how to write Kanji. Unlike “Kanji Study”, it has support for spaced repetition to help you retain that knowledge. And it supports Wanikani’s kanji-order out of the box. I also have future plans for syncing directly with your Wanikani account, so new kanji are only introduced in Ringotan once you’ve learned them in Wanikani.
It’s free-to-keep for early adopters, and has both iOS and Android versions. Try it out!
There a couple tools on kitsun.io I published you may find helpful.
There is the WaniKani Known Kanji & Vocab Filter which filters known vocab and kanji. It can either be used to filter out known vocabulary or filter in items (such as kanji writing). A link how to use is in the entry. It can be use to parse other decks and the Reader tool on Kitsun as well.
It can be used in conjunction with Kanji Writing Deck if you want to apply the filter. There are hyperlinks to WK entries for mnemonic reference (and Jisho). Recommend keyboards for writing are in the entry. Contains WK kanji plus additional the addition Jouyou kanji (which coincides with the Lost Level 61-70 deck). The deck is in order of N level and tagged by such which I think its a good indicator of the most frequent, I preferred N order but the filter application could be used side by side with WK
There is sister deck to the above Kanji Reading & Meaning Deck where meanings and reading can be tested, again can be applied to the filter along with hyperlinks for refererence. Not for writing obviously but can used in a number of ways for extra study or study by N level instead of WK level
I recently posted this, not the deck itself but if you want to use the Complete Jouyou Kanji Writing deck which can be imported, here is the Layout to use it with productive entry via kanji writing within Kitsun. The deck maker did a great job on this content for learning to write vocab. Instruction how to use it are in the entry.
Item Inspector has a word export feature that can be used to export lists of kanji. Do not confuse with the other export feature that export to csv format for spreadsheet, anki and kitsun.
I just tested it and for writing purpose, your app is awesome. Very userfriendly.
Kanji Study has tons of options and the more I use it the more excited it makes me. But that is also the downfall for new users, even with all the tutorials in can be quite overwhelming in the beginning.
I think both apps suplement eachother nicely and both are must haves.
Hi!
I’ve managed to export the kanji for level 1 by adding “, level: 1” to your filter string. But could you perhaps suggest a modification to your script which would similarly export all kanji but keep level 1 kanji on line 1, level 2 kanji on line 2 etc up to level 60? Thanks!
Awesome. Once commas and whitespace are removed, you have an import file for Chase Colburns Japanese Kanji Study app that allows synchronizing the app’s Kanji learning sequence to that of Wanikani Thanks a lot.
wkof.include('ItemData');
wkof.ready('ItemData').then(() => {
wkof.ItemData.get_items({ wk_items: { filters: { item_type: 'kan' } } }).then((kanji) => {
const map = new Map();
kanji.forEach((x) => map.set(x.data.level, [...(map.get(x.data.level) ?? []), x.data.slug]));
const outputText = [...map.entries()].sort((a, b) => a[0] - b[0]).map(([a, b]) => b.join('')).join('\n');
// Create a Blob containing the output text
const blob = new Blob([outputText], { type: 'text/plain' });
// Create a URL for the Blob
const url = URL.createObjectURL(blob);
// Create a link element to download the Blob as a file
const link = document.createElement('a');
link.href = url;
link.download = 'output.txt';
link.textContent = 'Download Output';
// Append the link to the document
link.click()
});
});