creator cover Alice liddell
Alice liddell

Alice liddell 

Разработка бесплатного расширения для Anki

1subscriber

3posts

goals1
0 of 10 paid subscribers
10 постоянных подписчиков помогут поддерживать разработку, тестирование и совместимость Anki Study Report с новыми версиями Anki.

About

Разрабатываю Anki Study Report — бесплатное расширение для анализа обучения в Anki. Хочу сделать его удобным, надёжным и полезным для изучающих языки и другие предметы. Поддержка поможет продолжать разработку, тестирование и выпуск обновлений.

Stage 1 — Information Architecture: новая структура навигации

TL;DR

Stage 1 of the Navigation and Information Architecture redesign is complete. The dashboard now separates primary study sections from profile actions and technical settings. The main navigation was reduced to Today, Calendar, Decks and Cards, while Profile, Settings, Tools and project support moved into an avatar menu. Server controls, data sources and logs were grouped into a dedicated Settings Hub. Existing routes remained functional, and future sections will only be added together with complete user workflows.
После завершения большой внутренней очистки Anki Study Report я перешёл к следующему продуктовому этапу — переработке навигации и информационной архитектуры приложения.
На первый взгляд навигация кажется довольно простой частью интерфейса: есть верхняя панель, несколько кнопок и переходы между страницами. Но по мере развития проекта разделов становилось всё больше, и постепенно они начали смешиваться между собой.
Рядом с основными учебными страницами находились профиль, инструменты, настройки сервера, логи и диагностические разделы. Все они были полезны, но решали совершенно разные задачи.
В результате верхняя панель переставала отвечать на простой вопрос:
Куда пользователю перейти, чтобы понять состояние своего обучения?
Поэтому первым этапом новой продуктовой работы стала не разработка очередной функции, а определение понятной и устойчивой структуры приложения.

Основные учебные разделы

На момент завершения Stage 1 главная навигация была сокращена до четырёх разделов:
  • Сегодня
  • Календарь
  • Колоды
  • Карточки
Каждый из них получил отдельную роль.

15 этапов внутренней уборки: legacy cleanup завершён

TL;DR

Legacy cleanup of Anki Study Report is complete. The project now uses a single canonical Cards data contract, performs stricter dashboard build validation, provides better fallback diagnostics, no longer contains misleading placeholder routes, and has less unused code. The cleanup was verified with 88 Python tests, 47 frontend tests and a complete Docker-based Anki E2E run.
После завершения полноценной страницы карточек я мог бы сразу перейти к разработке новых разделов. Вместо этого пришлось ненадолго остановиться и заняться работой, которая почти не видна снаружи, но сильно влияет на дальнейшее развитие проекта.
За время разработки внутри Anki Study Report накопились старые форматы данных, временные обходные пути, страницы-заглушки, дублирующая логика и вспомогательный код, который больше нигде не использовался.
В разработке всё это часто называют legacy. Само по себе legacy не обязательно означает плохой код. Обычно это решения, которые когда-то были нужны, но со временем начали усложнять проект: одну и ту же информацию приходится поддерживать в нескольких форматах, старые запасные пути мешают понять реальное поведение программы, а любое новое изменение требует учитывать всё больше исторических особенностей.
Поэтому следующим крупным этапом стала внутренняя очистка проекта.
Главной целью было не удалить как можно больше кода, а аккуратно определить:
  • Что действительно устарело и может быть удалено
  • Что является временным переходным слоем
  • Что используется для диагностики ошибок
  • Что защищает безопасность или стабильность приложения
  • Какие части нельзя трогать без проверки в настоящем Anki
Вся работа была разделена на 15 последовательных этапов.
Одним из основных направлений стала очистка формата данных страницы карточек. Раньше frontend мог принимать несколько исторических вариантов одного и того же списка: problemCards, cardIssues, cards и новый attentionCards.
Такая совместимость помогала во время ранней разработки, но после стабилизации формата только усложняла код и тестирование. Старые варианты были последовательно удалены, и теперь backend, frontend и автоматические проверки используют один канонический контракт — attentionCards.

Первый апдейт: полноценная страница карточек

Наконец-то завершён один из самых сложных этапов разработки Anki Study Report — создание полноценной страницы для анализа карточек.

Работа над этим разделом заняла намного больше времени, чем я изначально ожидал. Главная сложность заключалась не просто в том, чтобы вывести текст карточки, а в том, чтобы максимально близко воспроизвести её реальное отображение в Anki.
Для каждой карточки нужно было правильно получить тип записи, поля, HTML-шаблоны, стили, изображения, GIF-анимации и аудио. При этом пользовательские стили карточек не должны были ломать интерфейс самого приложения, а потенциально небезопасный HTML — выполняться внутри dashboard. 
В результате страница получила несколько режимов отображения:
- Компактную таблицу для быстрого анализа
- Плитки с визуальным предпросмотром
- Отдельный режим Anki Preview с отображением обратной стороны карточки
Карточки рендерятся в изолированной среде, поэтому их собственные CSS-стили не влияют на остальные страницы приложения. Медиафайлы загружаются через защищённый локальный сервер, а HTML проходит предварительную очистку.
Страница также помогает находить карточки, которым стоит уделить внимание. Например:
- Карточки с частыми ответами Again
- Медленные ответы
- Низкий процент успешных повторений
- Пропущенные изображения, аудио, значения или примеры
- Потенциальные leech-карточки
Отдельной частью работы стало тестирование. Для проекта была подготовлена изолированная Docker-среда с настоящим Anki Desktop, тестовой коллекцией, несколькими типами карточек и медиафайлами. Благодаря этому можно проверять не только отдельные функции, но и полный путь: установку расширения, запуск Anki, сбор данных, работу локального сервера и отображение карточек в браузере.
Subscription levels1

Supporter / Поддержка проекта

$1.92 per month
Регулярная поддержка разработки Anki Study Report. Средства помогают уделять больше времени улучшению расширения, исправлению ошибок, тестированию новых версий Anki и подготовке обновлений.

Regular support for Anki Study Report development. Your contribution helps fund new improvements, bug fixes, compatibility testing and future releases.

Уровень не открывает платные функции — это добровольная поддержка бесплатного проекта.
Go up