Скоро після початку використання Anki для вивчення арифметичних таблиць стало зрозуміло, що було б непогано навчати дітей розпізнавати різні вирази суми і різниці. Зокрема, є чотири різні форми: x + y, до x додати y, x збільшити на y, сума чисел x і y. Чому б не застосувати JavaScript у шаблонах карток, щоб вибирати запитання випадковим чином?

Виявилося, що код і справді простий. Просто потрібно зайняти місце для запитання, захопити значення полів у змінні JS, вибрати випадкову фразу з масиву, і підставити її у потрібне місце.

<small class="deck">{{Deck}}</small><br/><br/>

<span id="ask"></span>
<script>
var x = "{{a}}";
var y = "{{b}}";
var questions = [`до ${x} додати ${y}`, `${x} збільшити на ${y}`, `${x} + ${y}`, `сума чисел ${x} і ${y}`];
document.getElementById("ask").innerHTML = questions[Math.floor(Math.random() * questions.length)];
</script>

{{type:c}}

Є кілька застережень:

  • Код треба буде повторити у шаблоні кожної картки, тому що Anki не дозволяє включати шматки коду JavaScript із зовнішніх файлів. Можна обійти це обмеження, але так не буде працювати у AnkiDroid, наприклад.

  • Скрипт виконуватиметься щоразу, коли картка готується до показування, наприклад, коли перевертається, і зворотній бік містить {{FrontSide}}. Таким чином, на зворотному боці, імовірно, буде інше запитання, ніж на лицевому боці.

Ілюстрація JS у Anki