Known Problems

Undoing 'set known and skip'

There is a bug that occurs when you do the following:

  1. Open Anki
  2. Go to a deck and click 'Study Now'
  3. Only 'set known and skip' cards >

If you do this then those actions cannot be undone immediately. You can easily fix this by simply answering (or basically doing anything to) the next card, and you can now just undo twice and the previous 'set known and skip' will be undone.

This is a weird bug, but I suspect it is due to some guards Anki has about not being able to undo something until the user has made a change manually first ('set known and skip' only makes changes programmatically).

Redo is not supported

Redoing, i.e. undoing an undo (Ctrl+Shift+Z), is a nightmare to handle with the current Anki API. Since it is a rarely used feature, it is not worth the required time and effort to make sure it always works. Redo might work just fine, but it also might not. Use it at your own risk.

Freezing when reviewing

AnkiMorphs uses the Anki API to run in the background after you answer a card, which then displays a progress bar of how many cards have been skipped:

image

The Anki API has a rare bug where it sometimes gets in a deadlock and just says 'Processing...' forever.

image

When this happens you have to restart Anki.

Morphs don't split correctly

Anki stores text on cards as HTML, and this can cause some weird/unexpected problems. One such problems is that line breaks are actually stored as <br>.

Here is how it looks on the card:

Hello.
Goodbye.

This is how it is actually stored:

Hello.<br>Goodbye.

Most morphemizers completely ignore the unicode equivalent of <br>, which results in them interpreting the text as:

Hello.Goodbye.

To fix this problem, we can use the find and replace feature in Anki to add a whitespace between before the <br> on all our cards: find_and_replace_split.png Where the Find field has this:

(\S)<br>

The (\S) part finds a non-whitespace character and saves it for later.

And then the Replace With field has this:

${1} <br>

The ${1} part re-inserts the (\S) character that was found earlier.

Ruby characters (furigana, etc.) are displayed wrong in am-highlighted

When morphs are not recognized in the same way that the ruby characters intended, then we can get ugly things like this:

image

This is because 錬金術師 gets split into -> [錬金術, 師] and the ruby characters are after the second morph, so they only attach to that one. Fixing this programmatically is not possible, unfortunately.

If you really wanted to fix this particular card then you would have to do some manual editing to the ruby characters in the original field, e.g. splitting it into two different parts:

original:
錬金術師[れんきんじゅつし]

split:
錬金術[れんきんじゅ]師[つし]

then am-highlighted will produce this instead:

image
Incorrect highlighting of ignored names

When names are ignored, either by the morphemizer or those found in the names.txt, then the highlighting is prone to false-positives where other morphs also found in the text can mistakenly get highlighted in the names: names_incorrectly_highlighted.png