Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,8 @@ exclude = [ 'quora\.com', 'reddit.com', 'superuser.com', 'github.com/open-spaced
[output.html.redirect]
# redirect deleted pages to new pages to preserve legacy links
"note-types-with-strange-names.html" = "removing-duplicate-note-types.html"
"ankiweb-account-removal.html" = "https://docs.ankiweb.net/syncing.html#ankiweb-data-deletion"
"card-template-has-a-problem.html" = "https://docs.ankiweb.net/templates/errors.html#template-syntax-error"
"customizing-mathjax.html" = "https://docs.ankiweb.net/math.html#customize-mathjax"
"due-times-after-a-break.html" = "https://docs.ankiweb.net/studying.html#falling-behind"
"no-cloze-found-on-card.html" = "https://docs.ankiweb.net/templates/errors.html#no-cloze-filter-on-cloze-note-type"
39 changes: 1 addition & 38 deletions src/ankiweb-account-removal.md
Original file line number Diff line number Diff line change
@@ -1,38 +1 @@
# AnkiWeb account removal

As AnkiWeb is a free service, we need to periodically delete unused account data in order to keep costs down. As mentioned in our terms of service, your data may be deleted if you have not accessed your account or synced in the last 6 months.

Once your deck data has expired, it is not possible for us to recover your data from AnkiWeb, but you may be able to recover it if you have a local copy.

What gets deleted
-------

If your AnkiWeb account expires, only the AnkiWeb copy of your data is deleted. Any cards you have stored on your computer, phone or tablet will remain on those devices.

Returning to AnkiWeb after your data has expired
-------

If your account data was deleted due to inactivity, you may still be able to recover that data if you have a copy on your computer or mobile device. You can confirm this by opening Anki or AnkiMobile/AnkiDroid to see if your data is still there. If you had data on your device but accidentally overwrote it in a sync, you may be able to recover it from an [automatic backup](https://faqs.ankiweb.net/restoring-an-automatic-backup-recovering-from-data-loss.html)

If you'd like to start syncing that data with AnkiWeb again, please start by logging in to ankiweb.net using your Email. If your account details are correct, you will find you have 0 cards.

Once you have a valid AnkiWeb login, you can sync your computer or mobile device, enter your details, and then choose "Upload" to send your data back to AnkiWeb. Please make sure to upload, as choosing download would overwrite your local content with your empty AnkiWeb collection.

Avoiding account deletion
-----------------

Each time you visit ankiweb.net, or use the synchronisation feature in Anki, AnkiMobile or AnkiDroid, your account will automatically be marked as active. The mobile clients do not sync automatically, so simply using them to study will not result in your AnkiWeb account being marked active unless you use the sync button.

If your account has been inactive for 6 months or more, and you used the service for a week or longer, we will send you an email notifying you that deletion is pending. If you'd like to keep your account active, please log in to ankiweb.net and study a card, or sync one of your devices within 30 days.

Backing up your collection
--------

If you're not planning to study for a while, or if you receive an inactivity notice and don't wish to renew your account immediately, please ensure that you have a copy of your collection on your local computer or mobile device. Your data should already be on your device if you've used Anki's synchronisation feature. If you've only used AnkiWeb before, please install the computer version or a mobile client and sync with AnkiWeb in order to download your data.

Shared items
----------------

When you share a deck, a copy of the deck without scheduling information is made, and that copy along with any add-ons you share are not subject to the usual data expiry.

Please note however that shared decks will expire if they average less than a few downloads a month, so deck sharing is not a backup mechanism.
The contents of this page has been moved to the [Anki manual](https://docs.ankiweb.net/syncing.html#ankiweb-data-deletion).
74 changes: 1 addition & 73 deletions src/card-template-has-a-problem.md
Original file line number Diff line number Diff line change
@@ -1,73 +1 @@
# Card template has a problem

Anki has recently become stricter about reporting mistakes in card templates. In the past, it would silently ignore some problems, but display templates in unexpected ways. This change has been made to make mistakes easier to notice.

If you have not edited your card templates yourself, it is likely you have downloaded a shared deck, where the original deck author made a mistake when creating the template.

You can correct mistakes on the template by opening the card templates screen:

- On the computer version, edit a problem card, and then click on the Cards... button
- On AnkiMobile, while viewing a problem card in the review screen, tap the cog/gear, then Card Template.

When you correct a mistake, it will update all cards of that type - you do not need to make the same change for every card that uses the template.

What needs changing will depend on the message you are getting.

**Found '{{Field}}', but there is no field called 'Field'**

This indicates your template includes the name of a field that doesn't exist. To fix the problem, locate the
{{Field}} inside the card template, and remove it.

**Missing }} in {{Field**

This message is shown when {{ is found in the template without a matching }}. For example, if you have

```
{{Field
```

then this needs to be changed to

```
{{Field}}
```

**Missing {{/Field}}**

This means Anki found `{{#Field}}` or `{{^Field}}` in your card template, without a matching `{{/Field}}`. Removing `{{#Field}}` or `{{^Field}}` from the template will fix the error.

**Found {{/One}}, but expected {{/Two}}**

Conditional replacements need to be closed in the same order they are opened. For example, the following template is incorrect:

```
{{#One}}
{{#Two}}
{{Three}}
{{/One}}
{{/Two}}
```

To fix the problem, the template should be changed like so:

```
{{#One}}
{{#Two}}
{{Three}}
{{/Two}}
{{/One}}
```
**Found {{/Field}}, but missing '{{#Field}}' or '{{^Field}}'**

Closing tags must be matched by opening tags. For example, the following is invalid, because there is no `{{#Two}}` or `{{^Two}}` at the start:

```
{{Field}}
{{/Two}}
```

It can be fixed by removing the closing tag:

```
{{Field}}
```
The contents of this page has been moved to the [Anki manual](https://docs.ankiweb.net/templates/errors.html#template-syntax-error).
33 changes: 1 addition & 32 deletions src/customizing-mathjax.md
Original file line number Diff line number Diff line change
@@ -1,32 +1 @@
# Customizing MathJax

Anki's bundled MathJax support is loaded before your card content, so if you wish to customize MathJax, you will need to do so in a specific way.

For recent Anki versions, use something like this:

```html
<script>
MathJax.config.tex['macros'] = {
R: '{\\mathbb {R}}',
};
if (typeof is_already_run == 'undefined') {
is_already_run = true
MathJax.startup.getComponents();
}
</script>
```

For older Anki versions:

```html
<script>
MathJax.Hub.Config({
...
});
MathJax.Hub.Configured();
</script>
```

Notes:

- Please avoid changing the standard open/close tags (`\(` and `\[`), to something like `$` and `$$`, as Anki has special logic for cloze deletions, which will not work if you change the delimiter.
The contents of this page has been moved to the [Anki manual](https://docs.ankiweb.net/math.html#customize-mathjax).
54 changes: 1 addition & 53 deletions src/due-times-after-a-break.md
Original file line number Diff line number Diff line change
@@ -1,53 +1 @@
# Due times after a break

When you use Anki every day, each time a card is answered correctly, it
gets a bigger interval. Let’s assume that 'good' about doubles the
interval. Thus you have a 5 day wait, then a 10 day wait, 20 days, 40
days, and so on.

When people return to their deck after weeks or months of no study,
they’re often surprised by the length intervals have grown to. This is
because Anki considers the actual time the card was unseen, not just the
time it was scheduled for. Thus if the card was scheduled for 5 days but
you didn’t study for a month, the next interval will be closer to 60
days than 10 days.

This is a good thing. If you have successfully remembered a card after a
one month wait, chances are you’ll remember it again after a longer
wait, too. The same principles which make SRS effective in normal use
apply when you’re studying after a delay, too. It also makes little
sense to schedule a card for 10 days in the future if you were able to
easily answer it after a whole month’s wait - you’d be going backwards.

Resetting the deck is an even worse solution. When returning to a deck
after a long absence, you may have forgotten many of your cards, but
chances are you haven’t forgotten them all. Resetting the entire deck
means you have to waste time studying material you already know.

Now you may find overdue cards that you were able to recall, but not
comfortably, since they were not reviewed when they should have been. To
counter this, Anki treats the delay differently depending on your
answer. If you find a card easy, the last interval plus the full delay
are added together, and then used to calculate the next interval. When
you answer good, only half the delay is used. And when you answer hard,
none of the extra delay is used. So if a card was due in 5 days, and it’s
answered 20 days late, the next times you’d end up with are
approximately:

- Hard: 5 \* 1.2 = 6 days

- Good: (5 + 20/2) \* 2.5 = 37.5 days

- Easy: (5 + 20) \* 3.25 = 81.25 days

The exact numbers will depend on your past performance with the card,
and your deck settings.

If you find a card hard, the next interval is conservative and any extra delay
is discarded. If you find it good, the next interval is only about 50% higher.
And easy increases the interval aggressively as usual.

So it is recommended that you study as normal when you return to Anki
after a period of absence. But if you absolutely must reset the deck,
you can select the cards to reset in the browser, and use
**Cards**->**Reset** (or **Cards**->**Forget** in older versions).
The contents of this page has been moved to the [Anki manual](https://docs.ankiweb.net/studying.html?highlight=Fall#falling-behind).
39 changes: 1 addition & 38 deletions src/no-cloze-found-on-card.md
Original file line number Diff line number Diff line change
@@ -1,38 +1 @@
# No cloze found on card

<h2>Single empty cards</h2>

When making clozes, each cloze number is turned into a separate card. For example, the following will create three cards:

```
{{c1::This}} is a {{c2::sample}} {{c3::sentence}}.
```

If you you later edit the text, and either remove or change a cloze number, the previously created card may become blank. For example:

```
{{c1::This}} is a {{c2::sample}}
```

and

```
{{c1::This}} is a {{c2::sample}} {{c1::sentence}}.
```

are both changes that would make card 3 blank. When you view card 3, you'll see a message indicating that the card is blank, and can be cleaned up with the Empty Cards function. You can access that function via the Tools menu of the computer version's main window, and use it to remove blank cards. Please check the reported empty cards first, and if in doubt, create a backup with the File>Export menu item before proceeding.

<h2>All cloze cards empty</h2>

If you accidentally modify your card template, it may prevent any cloze deletions from appearing. If that has happened, please edit one such problem card, and note down the name of the first field - it is usually called "Text". Then, please:

- Click on the Cards... button
- Replace the front text with

```
{{cloze:Text}}
```

- Replace the back text with the same.

If your field was called something other than Text, replace Text with the name of the field.
The contents of this page has been moved to the [Anki manual](https://docs.ankiweb.net/templates/errors.html#no-cloze-filter-on-cloze-note-type).
53 changes: 1 addition & 52 deletions src/the-2021-scheduler.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,55 +120,4 @@ In earlier releases, a delay could be configured for "Again". "Hard" used 1.5x t

## Add-ons and custom scheduling

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.

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.

The code you enter applies to the entire collection, and not just decks using
the preset.

Here's an example. Please note that it uses modern JavaScript that will need
to be transpiled if you want to use it with the Qt5 version of Anki.

For example:

```javascript
// print the existing states
console.log(
JSON.stringify(states, null, 4)
);

// load the debugger if the web inspector is open
debugger;

// if the hard button is a learning step, make it
// a 123 minute delay
if (states.hard.normal?.learning) {
states.hard.normal.learning.scheduledSecs = 123 * 60;
}

// apply the same change in a rescheduling filtered deck
if (states.hard.filtered?.rescheduling?.originalState?.learning) {
states.hard.filtered.rescheduling.originalState.learning.scheduledSecs =
123 * 60;
}

// increase ease factor by 0.2 when Easy used on a review
if (states.good.normal?.review) {
states.easy.normal.review.easeFactor =
states.good.normal.review.easeFactor + 0.2;
}
```

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 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](https://github.com/ankitects/anki/blob/main/proto/anki/scheduler.proto).
The contents of this page has been moved to the [Anki manual](https://docs.ankiweb.net/deck-options.html#custom-scheduling).