diff --git a/src/the-2021-scheduler.md b/src/the-2021-scheduler.md index 3415727..bd79073 100644 --- a/src/the-2021-scheduler.md +++ b/src/the-2021-scheduler.md @@ -1,4 +1,4 @@ -# 2021 Scheduler +# The Anki v3 Scheduler The 2021 scheduler ("v3") is an update to the [Anki 2.1 scheduler](./the-anki-2.1-scheduler.md) ("v2"). @@ -7,7 +7,7 @@ scheduler](./the-anki-2.1-scheduler.md) ("v2"). As of Anki/AnkiMobile 23.10, and AnkiDroid 2.17, the v3 scheduler is the default and only option. -On older versions, the scheduler can be changed in the preferences screen. +On earlier versions, the scheduler can be changed from the preferences screen. ## Compatibility @@ -24,35 +24,32 @@ Client support: Because the v3 scheduler uses a different approach to gathering and sorting cards, a v2 and v3 client may show a different number of due cards on a given -day, and may show them in a different order. Please bear this in mind if you're -using a client that is still only supports v2. +day, and may show them in a different order. ## Changes ### Undo -The v3 scheduler uses Anki's new undo infrastructure - you can answer a card, -bury a different card, and answer another card, then undo each one in turn if -you wish. Previous schedulers handled undo separately, so a non-review action -would clear the review history, and vice versa. +The v3 scheduler uses Anki's new undo infrastructure: you can answer a card, +bury another card, answer a different card, then undo each action in turn. Previous schedulers handled undo for review and non-review actions separately, so performing an action for one would clear the undo history for the other. ### Daily limits -The new count is now capped by the review count by default, so that new card introduction +By default, the review limit in the v3 scheduler also applies to new cards, so that new card introduction is reduced/paused when you have a backlog of reviews. For example, if you have limits of -200 reviews and 20 new cards, and 190 reviews are due, only 10 new +200 review cards and 20 new cards, and 190 review cards are due, only 10 new cards will be introduced. This prevents the backlog from getting worse. If you find this happening, the recommended solution is to increase your review limit, and work through the backlog before you add more new cards. If you're sure you want to add more new cards -even though you have a backlog, you can enable the "new cards ignore review limit" option -in the deck options. +even though you have a backlog, you can enable the "New cards ignore review limit" option +in deck options. -Each deck's limit affects the number of cards that will be drawn from that deck +The limits of each deck will control the number of cards that are gathered from that deck and its subdecks. Limits are applied from the deck you select, so if you select -a child deck, its parents' limits will not apply. For example, with the -following limits: +a child deck, its parents' limits will not apply. For example, if the +following limits are set: - Parent: 100 - Parent::Child: 30 @@ -62,25 +59,24 @@ following limits: Then: -- If you click on Grandchild3, you'll get up to 200 cards. -- If you click on Grandchild2, you'll get up to 5 cards. -- If you click on Grandchild1, you'll get up to 50 cards. -- If you click on Child, you'll get up to 30 cards from the Child deck and its +- If you select Grandchild3, you'll get up to 200 cards. +- If you select Grandchild2, you'll get up to 5 cards. +- If you select Grandchild1, you'll get up to 50 cards. +- If you select Child, you'll get up to 30 cards from the Child deck and its subdecks. No more than 5 cards will be taken from Grandchild2. -- If you click on Parent, you'll get up to 100 cards, with a maximum of 30 +- If you select Parent, you'll get up to 100 cards, with a maximum of 30 coming from Child and its subdecks. -In the v3 scheduler in earlier Anki releases, intermediate limits were not -respected, so when clicking on Parent, the limits of Child did not influence how -many cards were taken from the grandchildren. +In earlier Anki releases, the v3 scheduler did not respect intermediate limits, so when clicking on parent, the limits of child did not influence how +many cards were taken from the grandchild decks. ### Sorting Additional deck options have been added to control the order new cards and -reviews are presented in. New cards can be mixed from multiple decks, and -reviews can optionally be ordered by interval or subdeck. +review cards are presented in. New cards can be mixed from multiple decks, and +review cards can optionally be ordered by interval or subdeck. -When burying is disabled, it is now possible to control whether siblings are +When burying is disabled, with the v3 scheduler it's possible to control whether siblings are shown together or not, by adjusting the display order. The options controlling the mixing of new cards and interday learning cards have @@ -89,49 +85,47 @@ be used from the deck you select to study. ### Burying -When burying is enabled, cards are now excluded from the queues at the start of -a study session. Previously if you had 10 forward and 10 reverse cards, the -counts would start at 20 and jump down as you review, but now they'll start directly -at 10. The actual burying still happens as you review cards. +When burying is enabled, cards are now excluded from the card counts at the start of +a study session. Previously if you had 10 forward and 10 reversed cards, the +counts would start at 20 and jump down as you review, but with v3 they'll start directly +at 10. -Because exclusion is done when you click on a deck, the counts you see on the deck +Because siblings are skipped when you click on a deck, the counts you see on the deck list will differ from the ones you see when you click on a deck. The overview screen -will point out the number of cards that will be buried. +will point out the number of cards that were waiting but have been skipped. -Learning cards that cross a day boundary can now be buried like reviews and new -cards, and there is a new option available that controls whether they should be buried -or not. +Learning cards that cross a day boundary ("interday learning cards") can be buried like review and new +cards. ### Fuzz -The small random delay added to reviews is now reflected on the answer buttons, +The small random delay added to intervals is reflected on the answer buttons, instead of only being applied when answering. The way the delay is calculated has also been improved - cards with intervals under -a week now receive a more equally-weighted delay, and the delay amount increases more +a week receive a more equally-weighted delay, and the delay amount increases more smoothly as intervals increase. ### Interday learning -Interday (1+ day) learning cards are now subject to the review limit. When -determining what fits within the limit, Anki fetches interday learning cards -first, then reviews, and finally new cards. +Interday learning cards are now subject to the review limit. When +determining what fits within the limit, Anki gathers interday learning cards +first, then review cards, and finally new cards. ### Filtered decks -Filtered decks with rescheduling disabled now show 4 buttons - the provided -delay applies to the Again button, and Hard/Good will use 1.5x and 2x the -provided delay. Easy will remove the card. +Filtered decks with rescheduling disabled show 4 answer buttons. You can configure a time delay for each button. Setting this delay to 0 for an answer button means that button will return the card to its home deck. + +In earlier releases, a delay could be configured for "Again". "Hard" used 1.5x that delay, whereas "Good" used 2x that delay, and "Easy" returned the card to its home deck. ## Add-ons and custom scheduling -The new scheduler is a ground-up rewrite, so add-ons that modified the old -scheduler's card gathering or answering routines will no longer work. It is no +The v3 scheduler is a ground-up rewrite, so add-ons that modified the previous scheduler's card-gathering or answering routines will not work with it. It is no longer possible to selectively replace parts of the scheduler's code ("monkey patching"), so some add-ons may not be practical to port without significant effort. -The new scheduler does provide some control over the scheduling however. As each +However, the v3 scheduler does provide more control over the scheduling. As each card is presented, the times and states associated with each answer button are calculated in advance, and it is possible to modify the calculated scheduling with some JavaScript code entered into the bottom of the deck options screen. @@ -173,8 +167,8 @@ if (states.good.normal?.review) { ``` Because this is implemented in JavaScript, it is not limited to the computer -version. AnkiMobile and AnkiDroid both support it as well, and AnkiWeb may -support it in the future too. This will allow advanced users to make +version. AnkiMobile and AnkiDroid both support it as well, and AnkiWeb may also +support it in the future. This will allow advanced users to make adjustments to the standard scheduling behaviour, that apply on all platforms. -The various scheduling states are described in SchedulingStates [here](https://github.com/ankitects/anki/blob/main/proto/anki/scheduler.proto). +The various scheduling states are described in [SchedulingStates](https://github.com/ankitects/anki/blob/main/proto/anki/scheduler.proto).