From 87e78714b77c5c1286881355ac1e1680e04d4911 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Wed, 27 May 2026 09:55:24 +0300 Subject: [PATCH] =?UTF-8?q?feat(textbooks):=20=D0=BE=D0=B1=D1=8A=D0=B5?= =?UTF-8?q?=D0=B4=D0=B8=D0=BD=D0=B8=D1=82=D1=8C=203=20=D1=87=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=A4=D0=B8=D0=B7=D0=B8=D0=BA=D0=B8=208=20?= =?UTF-8?q?=D0=B2=20=D0=BE=D0=B4=D0=B8=D0=BD=20hub-=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=B1=D0=BD=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Подход: hub-страница, а не слияние файлов. Проблема: 3 готовых файла-главы (thermal/electro/optics) занимали 3 карточки в каталоге. Физическое слияние в один файл = 800КБ+, конфликты CSS/JS namespaces, риск сломать KaTeX. Решение: - Создан frontend/textbooks/physics_8.html — hub-страница с 3 крупными карточками-разделами (амбер/синий/фиолетовый) - Карточки ссылаются напрямую на /textbooks/physics8_thermal.html и т.д. (express.static уже отдаёт эти файлы) - Из каталога /textbooks теперь видна ОДНА карточка «Физика 8», sort_order 4 - Hub-страница показывает прогресс по каждой главе через LocalStorage (best-effort парсинг) - Header «К каталогу», переключатель темы синхронизирован с главами Миграция 010: удалила 3 прежние записи (physics-8-thermal/electro/optics), добавила физическо-8 → physics_8.html, para_count=40. Эмодзи в hub не используются (только inline SVG). Эмодзи в файлах глав остались — это контент. --- .../src/db/migrations/010_physics_8_merge.sql | 11 + frontend/textbooks/physics_8.html | 355 ++++++++++++++++++ 2 files changed, 366 insertions(+) create mode 100644 backend/src/db/migrations/010_physics_8_merge.sql create mode 100644 frontend/textbooks/physics_8.html diff --git a/backend/src/db/migrations/010_physics_8_merge.sql b/backend/src/db/migrations/010_physics_8_merge.sql new file mode 100644 index 0000000..917c192 --- /dev/null +++ b/backend/src/db/migrations/010_physics_8_merge.sql @@ -0,0 +1,11 @@ +-- Объединить 3 отдельных учебника физики 8 (thermal/electro/optics) в один hub-учебник. +-- Hub-страница physics_8.html содержит карточки 3 разделов и ссылки на исходные файлы. + +-- 1. Удаляем 3 прежние записи (создали их часом раньше, прогресса пользователей ещё нет). +DELETE FROM textbooks WHERE slug IN ('physics-8-thermal','physics-8-electro','physics-8-optics'); + +-- 2. Регистрируем единый учебник «Физика 8» с hub-страницей. +INSERT OR IGNORE INTO textbooks (slug, subject, grade, title, author, description, html_path, para_count, color, sort_order) VALUES + ('physics-8', 'physics', 8, 'Физика — 8 класс', 'Исаченкова Л. А.', + 'Интерактивный учебник по физике 8 класса. 40 параграфов в трёх разделах: Тепловые явления (§1–§11), Электрические явления (§12–§31), Световые явления (§32–§40).', + 'physics_8.html', 40, 'blue', 4); diff --git a/frontend/textbooks/physics_8.html b/frontend/textbooks/physics_8.html new file mode 100644 index 0000000..9f73b6b --- /dev/null +++ b/frontend/textbooks/physics_8.html @@ -0,0 +1,355 @@ + + + + + +Физика 8 — учебник · Исаченкова Л. А. + + + + + +
+
+
+ + + К каталогу + +
+
+

Физика 8 класс

+
Интерактивный учебник · Исаченкова Л. А. · 40 параграфов · 3 раздела
+
+
+ +
+
+
+ +
+ +
+

Изучаем 3 раздела физики

+

Программа 8 класса разделена на три большие темы. Каждый раздел — это отдельная интерактивная книга со своими симуляциями, формулами, задачами и тестами. Вы можете изучать их в любом порядке, но программа предполагает последовательное прохождение от теплоты к оптике.

+
+ 40 параграфов + 3 раздела + Автор: Исаченкова Л. А. + Год: 2018 +
+
+ +
+
Σ
+
+
Общий прогресс по курсу
+
— параграфов
+
+
+
+ +
+ + +
+
I
+
Раздел I · §1–§11
+
Тепловые явления
+
11 параграфов
+
+
+
Внутренняя энергия, теплопередача, удельная теплоёмкость, фазовые переходы, плавление и парообразование, тепловые двигатели.
+
+ Температура + Теплоёмкость + Кипение + КПД +
+
+
Прогресс0%
+
+
+
+ Открыть раздел + +
+
+
+ + +
+
II
+
Раздел II · §12–§31
+
Электрические явления
+
20 параграфов
+
+
+
Электризация, закон Кулона, электрический ток, закон Ома, работа и мощность тока, электромагнитные явления, генератор и трансформатор.
+
+ Электричество + Сопротивление + Закон Ома + Магнетизм +
+
+
Прогресс0%
+
+
+
+ Открыть раздел + +
+
+
+ + +
+
III
+
Раздел III · §32–§40
+
Световые явления
+
9 параграфов
+
+
+
Источники света, прямолинейное распространение, отражение и преломление, плоское зеркало, линзы, оптические приборы, цвет и спектр.
+
+ Свет + Линзы + Зеркала + Спектр +
+
+
Прогресс0%
+
+
+
+ Открыть раздел + +
+
+
+ +
+ +
+
+
+
+
Интерактив в каждом §
+
Анимации, виджеты-калькуляторы, тесты на проверку — материал «оживает» прямо в учебнике.
+
+
+
+
+
+
Прогресс сохраняется
+
Закрываете вкладку — прогресс остаётся. Открываете снова — продолжаете с того же места.
+
+
+
+
+
+
Формулы — KaTeX
+
Математика рендерится настоящей типографикой, а не картинками. Работает офлайн после первой загрузки.
+
+
+
+
+
+
Светлая и тёмная тема
+
Переключатель в шапке. Тема запоминается между визитами и переходит на все главы.
+
+
+
+ +
+ + + + + + +