Skip to content
agent-axiomPublic

About

214 ключей Канси: каталог, карточки и тренировка на русском языке.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

214 ключей · Иероглифика

Статический учебный сайт на русском языке по мотивам карточного метода книги А. П. Мыцика.

  • Полный набор из 214 традиционных ключей Канси.
  • Шесть тематических групп; поиск по знаку, номеру, значению и пиньиню.
  • Позиционные варианты, упрощённые формы и 124 примера.
  • Собственные ассоциации для запоминания.
  • Тренировка по 10, 20 карточкам или всей выбранной группе.
  • Занятие на сегодня: до 10 ключей, сначала повторения по сроку, затем новые.
  • Интервалы повторений: 1, 3, 7, 14, 30, 60 дней; ошибка возвращает ключ на завтра.
  • История ответов, расписание и восстановление незавершённого занятия.
  • Экспорт и импорт резервной копии с сохранением более свежих результатов.
  • Адаптивная верстка и управление с клавиатуры.

Устройство

dist/ — готовый сайт без сборки и внешних зависимостей. Точки входа: #catalog, #practice, #progress, #about, #key-85.

content.tsv содержит оригинальные русские карточки. sources/ — происхождение данных и извлечённые факты Unicode. python build-data.py обновляет модуль dist/data.js.

Данные о прогрессе привязаны к браузеру. Сервис не содержит учётных записей или серверного хранилища прогресса.

Прогресс и повторения

dist/progress.js содержит независимую от интерфейса модель. keys214.progress.v2 в localStorage хранит записи по ключам, историю ответов, дневную подборку и текущую сессию. Старые отметки из keys214.known.v1 переносятся автоматически; исходный ключ остаётся нетронутым. Эти отметки не превращаются в вымышленные успешные ответы.

Дата занятия определяется по местному календарю устройства. Подборка фиксируется при старте: сначала просроченные ключи, при одинаковом сроке — забытые, затем новые. Повтор в тот же день и занятие раньше срока не увеличивают интервал. После ошибки можно сразу повторить трудные ключи; следующее плановое повторение — завтра. Интервалы — простое правило планирования, а не оценка вероятности запоминания.

Раздел «Прогресс» выгружает JSON с отметками, расписанием и полной историей. Импорт проверяет весь файл до записи, объединяет историю без дубликатов и сохраняет более свежий результат каждого ключа. Текущая сессия не заменяется сессией из копии. Подборка на тот же день сохраняется; на новом устройстве восстанавливается из копии. Автоматической синхронизации между устройствами нет. При недоступности localStorage или исчерпании места сайт показывает постоянное сообщение и позволяет выгрузить текущие результаты.

Проверки

Node.js 20+; установка зависимостей не требуется:

node --test tests/*.test.mjs

Тесты проверяют миграцию, интервалы, ошибки и немедленные повторы, устойчивость дневной подборки, восстановление сессии, объединение копий, повреждённый импорт, переполнение хранилища и календарные границы. В GitHub Actions тесты выполняются также в часовом поясе с переходом на летнее время.

Сведения об источниках, правах и границах учебных пояснений доступны внутри сайта в разделе «О проекте» и в sources/README.md.

Запуск локально

Требуется Python 3. В корне репозитория:

python3 -m http.server 8000 --directory dist

Откройте http://localhost:8000. Запускайте сайт через HTTP: при открытии index.html как локального файла браузер может блокировать JavaScript-модули.

Публикация на GitHub Pages

В настройках репозитория откройте Settings → Pages → Build and deployment → Source и выберите GitHub Actions.

Workflow .github/workflows/pages.yml пересоздаёт карточки, проверяет синтаксис JavaScript и запускает тесты в pull request. После успешных проверок обновление main публикует каталог dist/. Также доступен ручной запуск через Actions → Publish GitHub Pages → Run workflow. Внешние пакеты для сборки не нужны.

Относительные пути к ресурсам и навигация через # позволяют размещать сайт в подкаталоге GitHub Pages. Адрес опубликованного сайта отображается в Settings → Pages и в результате workflow.

Для изменения карточек отредактируйте content.tsv или build-data.py, выполните python3 build-data.py и сохраните изменения в GitHub. Для изменения интерфейса редактируйте dist/index.html, dist/style.css и dist/app.js.

Прогресс в localStorage привязан к домену: при переходе с другого хостинга отметки автоматически не переносятся. Перенос через JSON доступен между версиями сайта, в которых есть экспорт и импорт прогресса.

About

214 ключей Канси: каталог, карточки и тренировка на русском языке.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages