Releases: ankitects/anki
2.1.33
- Access More button in review screen with 'm' (thanks to ANH).
- Audio no longer plays when dropped/pasted (thanks to ANH).
- Fix bulk tag adding not adding tags if tag is a substring of an existing tag (thanks to Soren)
- Fix cards not being unburied if leaving Anki open and the first action of a new day is a sync.
- Fix drag&drop into existing content (thanks to ANH).
- Fix error when add-ons tried to access note/template in card template screen.
- Fix next learn message in congrats screen.
- Fix nonbreaking spaces in filenames not being handled properly.
- Fix text in export file selector (thanks to ANH).
- Fix timeouts in full syncs and media syncs again.
2.1.32
2.1.31
- Show card counts in pie graph, and other minor graph tweaks.
- Fix sync error+lost review when undoing in v2 filtered deck with scheduling off.
- Fix crash when dragging & dropping, thanks to ANH25.
- Fix 'stale notetype' error after sync+add.
- Close "edit current" when current card deleted.
- Code improvements thanks to ANH, Arthur, Evandro, Henrik and Thomas.
- Find&Replace completion is now case sensitive.
- Fix crash when recovering notes with missing notetype.
- Fix duplicate detection when input text is not normalized.
- Fix Empty Cards not ignoring BR tags.
- Fix Find&Replace window sizing.
- Fix handling of nested legacy template directives.
- Fix issues with bulk tag removal.
- Fix mpv failing to play audio after it's restarted, thanks to Kelciour.
- Fix some (rare) crashes.
- Full syncs and media syncs now terminate more quickly when the connection breaks.
- Improve support for getting proxies from Windows registry.
- Remove embedded direction markers in RTL cloze deletions.
- Strip nul characters from tags.
2.1.30
- Work around a failure to start on some Windows 10 May 2020 installations.
- Fix "show windows in tabs" not working on standard macOS build.
- Fix move into/out of filtered decks not syncing.
- Add right axis to graphs.
- Add night mode and mobile class toggles in card layout screen (thanks to ANH25).
- Card counts graph now always shows table.
- Catch negative review times in DB check.
- Code improvements (thanks to Matt, phwoo, Evandro and aplaice).
- Fix a crash in the DB check when a note type was missing.
- Fix automatic logout not working when auth failure occurs.
- Fix deck list and graphs not including v2 scheduler cards with rescheduling disabled.
- Fix early reviews not appearing in review graph.
- Fix hour graph problem in timezones west of UTC.
- Fix negated conditonals being non-negated when renamed.
- Fix some syncing errors that could happen until Check Database was run.
- Fix some young cards being shown as mature in reviews graph.
- Handle multiple same-numbered clozes in cloze-only filter.
- Refresh tag list after clearing empty tags.
- Other minor fixes.
2.1.29
- Add cloze-only: template filter, which can be combined with TTS to speak only the elided part.
- Fixed AltGr key handling in standard Windows build.
- Fix some Windows performance problems by rolling back to an older
Qt version. - Support the terminal command that enables dark mode on macOS again.
- Start media sync after full sync finishes.
- Fixed mpv taking time to start (thanks to Kelciour)
- Code/build improvements (thanks to Evandro, Matt & Arthur).
- Use right-to-left direction in some webviews when using RTL interface language.
- Fixed card ID and note ID being flipped in card stats.
- Don't show an error when card contains an empty URL.
- Various fixes for deck statistics.
- Fixed preview not updating when editing text in the Browse screen.
- Close gracefully on SIGTERM.
- Other minor tweaks.
2.1.28
2.1.28 is a big update with changes in a number of areas.
-
A reworked graphs screen:
- Rewritten with new graphing tools for more interactivity.
- Graphs can now be displayed for arbitrary searches.
- Added a calendar/heatmap view.
- If you need them for add-ons, the old graphs are currently still
accessible with a shift+click on the Stats button.
-
Reworked syncing:
- Normal syncs and media syncs can operate in parallel, speeding up startup and shutdown.
- Normal syncs no longer need to close open windows like the Browse screen, or close & re-open
the collection. - Full syncs now show a progress bar.
- Full syncs can now be cancelled, and both normal and full syncs cancel more quickly.
-
Card generation changes:
- Card generation now supports negated conditionals, and a mix of required
and optional fields. - When adding/importing, if a normal note doesn't generate any cards, Anki
will now add a blank card 1 instead of refusing to add the note. - Please bear in mind that if you take advantage of these features, older Anki
clients may report the cards are blank, or try to clean them up when you
use the Empty Cards feature. - Cloze numbers over 499 are no longer supported.
- Card generation now supports negated conditionals, and a mix of required
-
Card template screen:
- Changes are now accumulated, and can be saved or discarded when you close the screen.
- The front, back, and styling are no longer shown at the same time. You can switch between them with ctrl+1/2/3 or cmd+1/2/3.
- Added a search bar to search for text in the template or styling.
- Added a dropdown to change the previewed cloze number.
- Added a checkbox to toggle the filling of empty fields for preview.
- You can now delete a card template even if some notes are only using that
template - they will be given a blank card 1 instead.
-
Scheduling:
- The deck list no longer caps counts to 1000.
- The overview and study screen no longer cap counts to 1000.
- The deck list will no longer show a parent count higher than the limit
set on the parent.
-
Empty cards screen:
- Notes will not be deleted by default.
- Empty cards are grouped by note type.
- Empty cards can be clicked on to reveal them in the browse screen.
-
Database check:
- Notes with the wrong field count are now recovered instead of being deleted.
- Notes with missing note types are now recovered instead of being deleted.
- Notes with missing cards are now recovered instead of being deleted.
-
Unicode normalization:
If you are studying rare CJK characters and wish to prevent them from being converted into
modern equivalents, the following in the debug console will stop Anki from normalizing note text.mw.col.conf["normalize_note_text"] = False
-
The standard Windows build has troubles with the AltGr key. This is fixed
in the 2.1.29 beta, or a workaround is available. -
The standard Mac build currently does not support native dark mode. If you
previously enabled it from the terminal, please either try the 2.1.29 beta, or
undo the change with the following terminal command:defaults write net.ankiweb.dtop NSRequiresAquaSystemAppearance -bool yes
Other changes:
- Performance improvements to a number of screens.
- Fields screen now accumulates changes, which can be saved or discarded when you close the screen.
- Updated a few screens to show progress bars instead of hanging the UI.
- The standard builds now use Qt 5.15.
- Audio player on Windows has been switched back to mpv. Please report any
issues you have playing audio files/videos. - Fixed is:review not including relearning cards.
- Scroll media log to bottom at start (thanks to Kelciour)
- Update local media server (thanks to Evandro).
- Use Qt colour picker on Linux (thanks to Andreas).
- Add edited:x search for matching notes edited in last x days.
- Improvements to mpv handling (thanks to Kelciour).
- Windows build fix (thanks to Evandro).
- Clearer error message on failed regex search.
- Find & Replace remembers input (thanks to Evandro).
- Code improvements (thanks to BlueGreenMagick, Thomas and Andrew).
- Fixed '&' being changed in image filenames in HTML editor.
- Fixed exports getting broken by Windows carriage returns in note fields.
- Fixed deck deletion, and allow "deleting" the default deck (it comes back empty).
- Card layout screen divider can now be adjusted (thanks to Evandro).
- Fixed duplicate rendering in card layout screen (thanks to Evandro).
- Fixed off-by-one in field drag&drop (thanks to BlueGreenMagick)
- Various other fixes, including contributions from BlueGreenMagick, Arthur, neitrinoweb
and kenden.
2.1.27 was reserved for a bugfix update that did not eventuate.
2.1.26
- Fixed saving of searches in the browse screen.
- Fixed card layout screen failing to open in the alternate Anki build.
- Fixed .log files appearing when exporting.
- Fixed an error appearing when undoing V2 filtered decks with scheduling disabled.
- Fixed duplicate search when text contains formatting.
- Improvements to the PyPI packages (thanks to Evandro).
- Tweak the handling of changed note types in the add screen (thanks to Arthur).
- Tolerate decks with missing modification time from third party software.
- Support SOCKS proxies in the non-media sync.
2.1.25
(build tag on PyPi: 6046bbc)
- Fix a change to deck configurations that was breaking AnkiDroid.
- Fix deck configurations not deleting.
- Fix angle brackets inside cloze+MathJax not working properly.
- The DB check fixes an AnkiMobile bug where tags were not searchable.
- Revert to an earlier macOS toolchain to work around recordings not working.
- The media check no longer fails when files with very long filenames are in the folder.
- More gracefully handle case where deck conf is missing.
- Don't throw an error when cards have an invalid due number.
- {{type::Field}} now marks the card as non-empty if Field is non-empty.
- Tweak tab width in card layout screen (thanks to BlueGreenMagick).
- Build fixes (thanks to Evandro).
2.1.24
Searching:
- You can use
w:something
to search on word boundaries, eg:w:dog
search for "dog" on a word boundary - will match "dog", but not "doggy"
or "underdog".w:dog*
will match "dog" and "doggy", but not "underdog".w:*dog
will match "dog" and "underdog", but not "doggy".
- You can now use
re:something
to search via regular expression, eg:"re:(some|another).*thing"
find notes that have "some" or "another" on them, followed by 0 or more characters, and then "thing"re:\d{3}
find notes that have 3 digits in a row- When searching by regex, unicode case folding is used, so searching for
re:über
will
show a card that has "Über" on it.
nc:something
(short for "no combining (characters)") can be used to search while
ignoring accents, egnc:uber
will match both "über" and "Über". This behaves the same way as the "Ignore Accents" add-on, but is about 16x faster.- You can now sort on the deck, card template, note type and tags columns.
- You can now use wildcards when limiting the search to a field, eg
field*:something
. - You can now use wildcards when searching for a card template or note type by name.
rated:x
searches are now capped to a year instead of a month.- You can now escaped double-quotes in a search - eg
"foo\"bar"
- Single-quote searches are no longer supported.
- Because the searching code has been rewritten, add-ons that modify the search
code will need to be updated to support 2.1.24. It is no longer possible to
override the Finder class - add-ons will need to use the new hooks in the
browser screen to either rewrite the search text, or perform their own lookups
instead. The Advanced Browser add-on has already been updated, and can be used
as an example of how to accomplish things in 2.1.24. - Non-wildcard searches now do full unicode case folding (eg 'tag:masse' matches 'Maße').
- Wildcard searches do simple unicode case folding.
- The tag list in the Browse screen now uses unicode case folding.
macOS dark mode handling:
-
Anki now solely relies on the night mode setting in the preferences to decide
whether to show in light or dark mode. Some users wanted to run Anki in light
mode while keeping the rest of their system dark, and there were various
display problems when dark mode was changed after Anki started that couldn't
be easily worked around. -
Users who only use dark mode, and preferred the native look of widgets in dark
mode, can achieve the previous appearance by running the following command in
the terminal:⚠️ This will only work if your system is permanently in dark mode!
If you switch between dark and light mode, the interface will render incorrectly.defaults write net.ankiweb.dtop NSRequiresAquaSystemAppearance -bool no
And the following in the debug console:
mw.pm.meta["dark_mode_widgets"] = True
Database changes (mainly of interest to add-on developers):
- Anki now uses Rust's sqlite libraries instead of Python's.
- The 'db' object on the collection retains most of the same API as before, minimizing the amount of immediate code changes that are required.
- Custom sql functions are no longer supported, and named DB arguments (eg "where id = :id") are deprecated.
- The old database code remains in db.py, and add-ons can continue to use it for accessing
their own databases. - The database is now behind a mutex, and can be safely accessed from a background thread.
- Various screens like the database check have been updated to run on a background thread,
so they no longer lock up the UI while they're running. - The database progress handler has been removed. Anki previous had sqlite call back into
Python periodically during long-running DB operations so it could drain the UI queue,
but this would vary in choppyness depending on the type of DB operation being performed,
and it was the cause of some crashes in the past. Add-ons that perform long-running operations
should instead use mw.taskman.run_in_background() or their own threading solution moving forward.
Other changes:
- A tweak which should fix some broken add-ons from preventing the collection from being loaded.
- Add socks support to media sync.
- Allow dragging fields to change their position (thanks to BlueGreenMagick).
- Allow selecting add-on config help text (thanks to ijgnd).
- Allow the type answer arrow to be styled (thanks to Evandro).
- Anki will now wait for a media sync to complete or be aborted before closing the collection.
- Build improvements (thanks to Evandro).
- Changed the way cloze deletions in RTL fields are handled, which should address some corner cases.
- Clean up the previewing code (thanks to Arthur). Add-ons that modify the preview screen will need updating.
- Don't force a full sync when DB check finds cards with a high due number.
- Don't show a popup when a network error occurs while syncing media.
- Fixed a case where decks could be sorted incorrectly (thanks to Arthur).
- Fixed a useless log file being created when exporting.
- Fixed add-ons with multiple branches not updating properly.
- Fixed an error that could occur when performing an operation in the browse screen then immediately closing it.
- Fixed Anki closing after a full sync on collection load.
- Fixed current card sometimes not being centered when searching.
- Fixed deck_browser_did_render hook.
- Fixed editor buttons not being highlighted (thanks to Simone).
- Fixed interface getting stuck when a corrupt collection was encountered.
- Fixed media sync waiting forever when connection dropped.
- Fixed progress dialogs failing to appear in a timely manner.
- Fixed tag searches in custom study (thanks to zjosua).
- Fixed the collection_did_load add-on hook.
- Fixed the wrong language shown in the preferences screen for some languages.
- GitHub now checks Windows and Mac builds as well (thanks to Evandro).
- Handle renamed cloze fields when previewing (thanks to BlueGreenMagick).
- Ignore .DS_Store files in the media trash folder.
- Improved invalid HTML/JS error messages (thanks to Evandro).
- Improved the handling of deck deletions (thanks to Arthur).
- Improvements to debug console (thanks to BlueGreenMagick).
- Left-align tags in the browser.
- Media syncs no longer take time to abort.
- More hooks (thanks to Arthur).
- Moved the scheduling options in the preferences to a separate tab, so options fit on the screen even on devices with small screens.
- Prepare for uploading releases to PyPI (thanks to Evandro).
- The media check will now fix file references in fields that broke because a filename was shortened as part of a sync.
- Updated config handling. While there should be no immediate breakages, if you're an add-on author and
store lists or dicts in Anki's config, please see 676f4e7.