From d52ad9b06f1c363801411fa69bde7c97b2914fc5 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Fri, 29 May 2026 22:51:42 +0300 Subject: [PATCH] =?UTF-8?q?docs(plans):=20=D0=BF=D0=BB=D0=B0=D0=BD=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D0=B3=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20?= =?UTF-8?q?=D0=A4=D0=B8=D0=B7=D0=B8=D0=BA=D0=B0=209=20(=D0=98=D1=81=D0=B0?= =?UTF-8?q?=D1=87=D0=B5=D0=BD=D0=BA=D0=BE=D0=B2=D0=B0=202019,=205=20=D0=B3?= =?UTF-8?q?=D0=BB=D0=B0=D0=B2,=2036=C2=A7=20+=2012=20=D0=9B=D0=A0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plans/textbooks-9/PLAN_PHYSICS_9.md | 341 ++++++++++++++++++++++++++++ 1 file changed, 341 insertions(+) create mode 100644 plans/textbooks-9/PLAN_PHYSICS_9.md diff --git a/plans/textbooks-9/PLAN_PHYSICS_9.md b/plans/textbooks-9/PLAN_PHYSICS_9.md new file mode 100644 index 0000000..2946c45 --- /dev/null +++ b/plans/textbooks-9/PLAN_PHYSICS_9.md @@ -0,0 +1,341 @@ +# План реализации: Физика 9 (Беларусь, Исаченкова, 2019) + +**Источник:** `Fizika_Isachenkova_9_rus_2019.pdf` (208 стр., 5 глав, **36 параграфов + 12 ЛР**) +**Авторы источника:** Исаченкова Л.А., Сокольский А.А., Захаревич Е.В. (под ред. Сокольского) +**Издательство:** «Народная асвета», Минск, 2019, ISBN 978-985-03-3082-6 +**Уровень:** базовый + повышенный (рубрика «Для любознательных», задачи 🦉). + +> **Тематика учебника — классическая механика целиком:** кинематика, динамика, статика, законы сохранения, плюс отдельная глава из 12 лабораторных работ. Это **продолжение Физики 7 и Физики 8** (тепловые/электрические/оптические явления изучены в 7-8 классах) и **подготовка к Физике 10** (молекулярная физика + электродинамика). +> +> **Авторство контента:** наш материал, написанный по канве источника. Поле `author` в БД — пустое (правило проекта после миграции `029_clear_all_textbook_authors.sql`). + +--- + +## 🎯 Содержание учебника + +### Глава 1. Основы кинематики (§§1–14) · 14 параграфов · blue + +| § | Тема | Ключевые понятия/формулы | +|---|------|--------------------------| +| §1 | Механическое движение | Кинематика; абсолютно твёрдое тело; поступательное движение; модель материальной точки | +| §2 | Относительность движения. Система отсчёта | Тело отсчёта, система координат, часы → СО; относительность скорости, траектории, пути | +| §3 | Скалярные и векторные величины. Действия над векторами | Модуль вектора; равенство векторов; сложение (правило треугольника, параллелограмма); умножение на скаляр | +| §4 | Проекция вектора на ось | $a_x = a\cos\alpha$; знак проекции; разложение по осям | +| §5 | Путь и перемещение | Путь $s$ (скаляр) vs перемещение $\Delta\vec r$ (вектор); $\Delta r = \|\vec r - \vec r_0\|$ | +| §6 | Равномерное прямолинейное движение. Скорость | $\vec v = \text{const}$; $\Delta\vec r = \vec v\,t$; $x = x_0 + v_x t$; $s = vt$ | +| §7 | Графическое представление равномерного прямолинейного движения | Графики $v(t)$ (прямая), $x(t)$ (наклонная); площадь под $v(t)$ = путь | +| §8 | Неравномерное движение. Средняя и мгновенная скорость | $\langle v\rangle = s/t$; мгновенная скорость как предел; векторная средняя $\langle \vec v\rangle = \Delta\vec r/\Delta t$ | +| §9 | Сложение скоростей | $\vec v_{1,3} = \vec v_{1,2} + \vec v_{2,3}$ (классический закон сложения); пловец/плот, лодка/река | +| §10 | Ускорение | $\vec a = \dfrac{\Delta \vec v}{\Delta t}$; единица м/с²; направление ускорения | +| §11 | Скорость при равноускоренном движении | $\vec v = \vec v_0 + \vec a\,t$; в проекциях $v_x = v_{0x} + a_x t$ | +| §12 | Перемещение, координата и путь при равноускоренном движении | $\Delta\vec r = \vec v_0 t + \dfrac{\vec a t^2}{2}$; $x = x_0 + v_{0x}t + \dfrac{a_x t^2}{2}$; $v^2 - v_0^2 = 2a_x \Delta x$ | +| §13 | Линейная и угловая скорости | $\omega = \dfrac{\Delta\varphi}{\Delta t} = \dfrac{2\pi}{T} = 2\pi\nu$; $v = \omega R$ | +| §14 | Ускорение точки при движении по окружности | $a_n = \dfrac{v^2}{R} = \omega^2 R$; центростремительное направление к центру | + +### Глава 2. Основы динамики (§§15–24) · 10 параграфов · green + +| § | Тема | Ключевые понятия/формулы | +|---|------|--------------------------| +| §15 | Взаимодействие тел. Сила. ИСО. 1-й закон Ньютона | Сила как мера взаимодействия; ИСО; принцип инерции: $\vec F = 0 \Rightarrow \vec v = \text{const}$ | +| §16 | Масса | Масса как мера инертности; $m_1/m_2 = a_2/a_1$; единица кг | +| §17 | Второй закон Ньютона — основной закон динамики | $\vec a = \dfrac{\vec F}{m}$; $\vec F = m\vec a$; в проекциях $F_x = m a_x$ | +| §18 | Третий закон Ньютона. Принцип относительности Галилея | $\vec F_{12} = -\vec F_{21}$; равенство сил действия/противодействия; инвариантность законов в ИСО | +| §19 | Деформация тел. Сила упругости. Закон Гука | Виды деформаций; $F_{\text{упр}} = -k x$; жёсткость пружины $k$, единица Н/м | +| §20 | Силы трения. Силы сопротивления среды | Покой/скольжение/качение; $F_{\text{тр}} = \mu N$; сопротивление среды зависит от скорости | +| §21 | Движение тела под действием силы тяжести | $a = g \approx 9{,}81$ м/с²; свободное падение; $h = \dfrac{gt^2}{2}$, $v = gt$ | +| §22 | Движение тела, брошенного под углом к горизонту¹ | Параметрические уравнения: $x = v_0\cos\alpha\cdot t$, $y = v_0\sin\alpha\cdot t - \dfrac{gt^2}{2}$; дальность $L = \dfrac{v_0^2\sin 2\alpha}{g}$; высота $H = \dfrac{v_0^2\sin^2\alpha}{2g}$ | +| §23 | Закон всемирного тяготения | $F = G\dfrac{m_1 m_2}{r^2}$; $G = 6{,}67\cdot 10^{-11}$ Н·м²/кг²; $g = G M_З/R_З^2$ | +| §24 | Вес. Невесомость и перегрузки | Вес $P$ vs сила тяжести $mg$; $P = m(g \pm a)$; $P = 0$ — невесомость; $k = a/g + 1$ — перегрузка | + +¹ §22 в источнике — «для дополнительного чтения»; пишем на равных. + +### Глава 3. Основы статики (§§25–30) · 6 параграфов · violet + +| § | Тема | Ключевые понятия/формулы | +|---|------|--------------------------| +| §25 | Условия равновесия тел. Момент силы | $\sum \vec F = 0$ и $\sum M = 0$; $M = F\cdot l$ (плечо); единица Н·м | +| §26 | Простые механизмы. Рычаги. Блоки | $F_1 l_1 = F_2 l_2$; неподвижный/подвижный блоки; полиспаст | +| §27 | Наклонная плоскость. «Золотое правило» механики. КПД | Выигрыш в силе = проигрыш в пути; $\eta = \dfrac{A_{\text{пол}}}{A_{\text{сов}}}\cdot 100\%$ | +| §28 | Центр тяжести. Виды равновесия | ЦТ однородных тел; устойчивое/неустойчивое/безразличное равновесие | +| §29 | Действие жидкости и газа на погружённые тела. Выталкивающая сила. Закон Архимеда | $F_A = \rho_ж g V_{\text{погр}}$; вывод через давление сверху/снизу | +| §30 | Плавание судов. Воздухоплавание¹ | Условие плавания $\rho_т \le \rho_ж$; ватерлиния; подъёмная сила воздухоплавательного аппарата | + +¹ §30 в источнике — «для дополнительного чтения»; пишем на равных. + +### Глава 4. Законы сохранения (§§31–36) · 6 параграфов · pink + +> **Важно:** контент §31–36 **уже написан** в текущем `frontend/textbooks/physics_9.html` (формулы, теория, примеры, практические задачи с валидацией). При создании `physics_9_ch4.html` контент переносится с минимальными правками — нужно только заменить общую обвязку (шапку, breadcrumbs, нумерацию). + +| § | Тема | Ключевые понятия/формулы | +|---|------|--------------------------| +| §31 | Импульс тела. Импульс системы тел | $\vec p = m\vec v$; единица кг·м/с; импульс системы = $\sum \vec p_i$ | +| §32 | Закон сохранения импульса. Реактивное движение | $\sum \vec p_{до} = \sum \vec p_{после}$ для замкнутой системы; ракета: $m_р\vec v_р + m_г\vec v_г = 0$ | +| §33 | Механическая работа. Мощность | $A = F\Delta r\cos\alpha$; единица Дж; мощность $P = A/\Delta t = Fv\cos\alpha$, единица Вт | +| §34 | Потенциальная энергия | $E_п = mgh$ (тяжести); $E_п = kx^2/2$ (упругости); $A = -\Delta E_п$ | +| §35 | Кинетическая энергия. Полная энергия системы тел | $E_к = mv^2/2$; теорема о кинетической энергии $A_{\text{полн}} = \Delta E_к$; $E = E_к + E_п$ | +| §36 | Закон сохранения энергии | $E_к + E_п = \text{const}$ в замкнутой консервативной системе; превращение видов энергии | + +### Глава 5. Лабораторный практикум (12 ЛР) · cyan + +| ЛР | Название | Цель | Основное оборудование | +|----|----------|------|------------------------| +| ЛР1 | Определение абсолютной и относительной погрешностей прямых измерений | Научиться определять $\Delta x$, $\varepsilon_x$, интервальная форма | Мерная лента, шарик на нити $l=1$ м, секундомер, штатив, треугольник | +| ЛР2 | Измерение ускорения при равноускоренном движении | $a = 2l/t^2$ из движения шарика по наклонному жёлобу | Жёлоб, штатив, стальной шарик, упор, секундомер, мерная лента | +| ЛР3 | Изучение движения тела по окружности | Период $T$, $a_n = 4\pi^2 R/T^2$, $\omega$, $v = \omega R$ | Штатив, нить 40–45 см, шарик, секундомер, лист с окружностью $R = 10$ см | +| ЛР4 | Проверка закона Гука | Жёсткость пружины $k$ из графика $F_{\text{упр}}(x)$ | Штатив, динамометр, набор грузов $m = 100$ г | +| ЛР5 | Измерение коэффициента трения скольжения | $\mu = F_{\text{упр}}/P$ для дерева по дереву | Брусок, доска, грузы, штатив, мерная лента, динамометр | +| ЛР6 | Изучение движения тела, брошенного горизонтально | $v_0 = l\sqrt{g/(2h)}$ из дальности полёта | Штатив, шарик, лоток, листы белой+копировальной бумаги, линейка, скотч | +| ЛР7 | Проверка условия равновесия рычага | $F_1 l_1 = F_2 l_2$; $M_1 = M_2$ | Рычаг съёмный с осью, штатив, грузы $m = 100$ г | +| ЛР8 | Изучение неподвижного и подвижного блоков | Выигрыш в силе для подвижного блока в 2 раза, $P h_1 = F h_2$ | Штатив, блоки, грузы, динамометр, нить 80–100 см | +| ЛР9 | Изучение наклонной плоскости и измерение её КПД | $\eta = mgh/(F_{\text{упр}}l)\cdot 100\%$ при углах 30° и 45° | Доска 40–80 см, брусок, грузы, штатив, динамометр, линейка, треугольник | +| ЛР10 | Изучение выталкивающей силы | $F_A = F_{\text{упр1}} - F_{\text{упр2}}$ для разных жидкостей и тел | Стакан с водой, мензурка, динамометр, цилиндры разной плотности, раствор соли, штатив | +| ЛР11 | Проверка закона сохранения импульса | $m_1 l_1 = m_1 l'_1 + m_2 l'_2$ для столкновения шаров | Штатив, лоток, два шара разной массы, листы белой+копировальной бумаги, линейка, весы, разновес, скотч | +| ЛР12 | Проверка закона сохранения механической энергии | $F_{\text{упр}}|x| = ml^2 g/(2h)$ — пружина → шар → дальность полёта | Два штатива, лоток, шар на нити, динамометр, листы белой+копировальной бумаги, линейка, весы, разновес, скотч | + +Каждая ЛР в источнике содержит: **Цель → Оборудование → Проверьте себя (вопросы перед работой) → Вывод расчётных формул → Ход работы (нумерованные шаги) → Таблица измерений → Контрольные вопросы → Суперзадание**. Шаблон ЛР воспроизводим в HTML 1-в-1. + +**ИТОГО:** 5 глав, 36 параграфов + 12 ЛР, **1 часть** (только механика). + +--- + +## 🎨 SVG/JS-стандарт для Физики 9 + +Физика 9 — **первая физика в проекте, посвящённая только механике**. Многие хелперы переиспользуются из Физики 10/11 (которые уже реализованы): + +### Унаследованные хелперы (из Физики 10/11) +- `drawArrow(x1, y1, x2, y2, color, width, headSize)` — стрелка вектора (нужна **везде**: сила, скорость, импульс, ускорение) +- `axes2D(W, H, pad, xmin, xmax, ymin, ymax)` — координатная плоскость для графиков $v(t)$, $x(t)$, $a(t)$ +- `plotFunc(f, xmin, xmax, ...)` — графики кинематики +- `angleArcAuto`, `rightAngleMark`, `unitVec`, `deg2rad` — углы и единичные векторы +- `snapToValue` — snap-точки для интерактивных слайдеров + +### Новые хелперы для Физики 9 (`frontend/js/phys9.js` или расширение `phys.js`) + +```javascript +// === Тело на наклонной плоскости с разложением сил === +function inclinedPlane(x, y, length, angle, bodyW, bodyH, showForces) { + // SVG: плоскость + брусок + векторы N, mg, F_тр, F_упр (если showForces) + // Возвращает группу с углом наклона, силами с подписями +} + +// === Рычаг (двуплечий) === +function lever(x, y, l1, l2, F1, F2) { + // Горизонтальная линейка с точкой опоры, левая сила вниз (F1, плечо l1), правая (F2, плечо l2) + // Подписи плеч и сил, треугольная опора +} + +// === Подвижный/неподвижный блок === +function pulleyFixed(x, y, r, weight) { /* колесо + нить + груз */ } +function pulleyMovable(x, y, r, weight) { /* колесо в нити, петля сверху + груз снизу */ } + +// === Тело в жидкости (закон Архимеда) === +function bodyInFluid(x, y, bodyW, bodyH, submergeDepth, fluidColor) { + // Прямоугольник тела частично погружён в прямоугольник жидкости + // Вектор F_A вверх, mg вниз +} + +// === Пружина с грузом === +function spring(x1, y1, x2, y2, coils, width) { + // Зигзаг пружины с заданным числом витков +} + +// === Траектория тела, брошенного под углом === +function projectileTrajectory(x0, y0, v0, angle, g, toX, toY, color) { + // Параболическая кривая через серию точек + // Возвращает + вектор v0 в точке запуска +} + +// === Движение по окружности с вектором a_n и v === +function circularMotion(cx, cy, r, theta, showVectors) { + // Окружность + точка на ней + касательная v + радиальный a_n к центру +} + +// === Таймер-сечундомер (статичная иконка для ЛР) === +function stopwatchIcon(x, y, size) { /* SVG секундомера */ } +``` + +### Интерактивные виджеты (для блоков «🎱 интерактивная модель») +- **Сложение векторов** (§3): drag двух стрелок → результирующий вектор + модуль +- **Относительность движения** (§2): лодка/река — пользователь меняет $\vec v_{\text{лодки}}$ и $\vec v_{\text{реки}}$, смотрит траекторию относительно берега и относительно реки +- **График $x(t)$ и $v(t)$** (§§6–12): слайдер $v_0, a$ → синхронные графики +- **Закон Гука** (§19): пружина с тянущимся грузом + график $F(x)$ +- **Архимед** (§29): погружение тела разной плотности в разные жидкости → $F_A$ в реальном времени +- **Закон сохранения импульса** (§32): столкновение двух шаров — пользователь задаёт массы и скорости, смотрит до/после + +### Видео-демоопыты (для блоков «📱 опыт») +Источник 📱 в учебнике (Приложение 2) — это видео BIBLIOMER. У нас вместо видео — **встроенная статическая SVG-иллюстрация + краткое описание опыта** (или ссылка на YouTube/локальный видеофайл — TBD). + +--- + +## 📐 Структура каждого § (универсальный шаблон) + +Каждый параграф в `physics_9_chN.html` оформляется по канве источника: + +```html +
+ +
+
§ 1
+

Механическое движение

+

Кинематика как раздел физики...

+
+ + +
+

...

+
Материальной точкой называют тело, размерами которого в данной задаче можно пренебречь.
+
...
Рис. 1. Поступательное движение
+

Формула: $$\vec v = \frac{\Delta \vec r}{\Delta t}$$

+
+ + +
+
... Главные выводы
+
    +
  1. Задача кинематики — математически строгое описание механического движения.
  2. +
  3. При описании поступательного движения можно использовать модель материальной точки.
  4. +
  5. Материальной точкой называют тело, размерами которого в данной задаче можно пренебречь.
  6. +
+
+ + +
+
... Контрольные вопросы
+
    +
  1. В чём состоит задача кинематики?
  2. +
  3. Что такое абсолютно твёрдое тело?
  4. +
  5. ...
  6. +
+
+ + +
+
... Домашнее задание
+
    +
  1. Выразите время в секундах: $t_1 = 20$ мкс; $t_2 = 0{,}40$ мин; $t_3 = 3{,}0$ ч.
  2. +
  3. ...
  4. +
+
+ + +
+
Упражнение 1
+
+

1. Что такое траектория? Путь?

+ +
+
+

4. Если пути 900 000 км; 15 м пройдены за одно время, то какой пройден пешеходом?

+ + +
+
+ + +
+ Для любознательных +

...

+
+
+``` + +Использовать существующий CSS из `physics_10_chN.html` (адаптировать переменные `--ch-color`). + +--- + +## 🚀 Реализация по фазам + +### Фаза 1 ✅ (этот документ) +Составить PLAN_PHYSICS_9.md — оглавление, ЛР, хелперы, шаблон §. + +### Фаза 2. Генератор hub-страницы +- `backend/scripts/gen_phys9_hub.js` (по образцу `gen_phys10_hub.js`) +- SRC: `physics_10_hub.html` → DST: `physics_9_hub.html` +- Палитра: синяя (header `#1e3a8a → #2563eb → #60a5fa`) +- Заголовок: «Физика 9 класс», подзаголовок: «Механика» +- 5 карточек глав с цветами `blue · green · violet · pink · cyan` +- Описания глав — из таблиц выше (1 строка на главу) + +### Фаза 3. Генератор скелетов глав +- `backend/scripts/gen_phys9_ch.js` (по образцу `gen_phys10_ch.js`) +- Генерирует 5 файлов `physics_9_ch1..ch5.html` со скелетом (header, breadcrumbs, KaTeX, dark-mode, XP, прогресс per-§). +- Главы 1-4: пустые секции по § с заголовками из таблиц. +- Глава 5 (ЛР): 12 пустых секций ЛР с шаблоном (Цель/Оборудование/Ход работы/Контрольные). + +### Фаза 4. Миграция БД +`backend/src/db/migrations/038_physics_9_hub.sql`: + +```sql +-- 1. Удалить старую плоскую строку +DELETE FROM textbooks WHERE slug = 'physics-9'; + +-- 2. Hub +INSERT INTO textbooks (slug, subject, grade, title, author, description, html_path, para_count, color, sort_order, is_active) VALUES +('physics-9', 'physics', 9, 'Физика — 9 класс', '', + 'Полный курс механики: кинематика, динамика, статика, законы сохранения + 12 лабораторных работ. 5 глав, 36 параграфов.', + 'physics_9_hub.html', 36, 'blue', 2, 1); + +-- 3. Дочерние главы +INSERT INTO textbooks (slug, subject, grade, title, author, description, html_path, para_count, color, sort_order, is_active, parent_slug) VALUES +('physics-9-ch1', 'physics', 9, 'Физика 9 · Основы кинематики', '', + '§1–§14: механическое движение, СО, векторы, путь и перемещение, равномерное и равноускоренное движение, движение по окружности.', + 'physics_9_ch1.html', 14, 'blue', 1, 1, 'physics-9'), +('physics-9-ch2', 'physics', 9, 'Физика 9 · Основы динамики', '', + '§15–§24: законы Ньютона, масса, закон Гука, трение, всемирное тяготение, вес и невесомость.', + 'physics_9_ch2.html', 10, 'green', 2, 1, 'physics-9'), +('physics-9-ch3', 'physics', 9, 'Физика 9 · Основы статики', '', + '§25–§30: момент силы, рычаги, блоки, наклонная плоскость, КПД, центр тяжести, закон Архимеда.', + 'physics_9_ch3.html', 6, 'violet', 3, 1, 'physics-9'), +('physics-9-ch4', 'physics', 9, 'Физика 9 · Законы сохранения', '', + '§31–§36: импульс, реактивное движение, работа, мощность, потенциальная и кинетическая энергия, закон сохранения энергии.', + 'physics_9_ch4.html', 6, 'pink', 4, 1, 'physics-9'), +('physics-9-ch5', 'physics', 9, 'Физика 9 · Лабораторный практикум', '', + '12 лабораторных работ: погрешности, ускорение, окружность, закон Гука, трение, бросок, рычаг, блоки, наклонная плоскость, Архимед, импульс, энергия.', + 'physics_9_ch5.html', 12, 'cyan', 5, 1, 'physics-9'); +``` + +### Фаза 5. Контент по главам (по образцу Физики 10) +Порядок написания: +1. **Ch4 (§31–36)** — перенести готовый контент из `physics_9.html` (минимум работы, проверить, что всё корректно работает с новой обвязкой). +2. **Ch1 (§1–14)** — самая большая глава (14 §). Базовая кинематика, много векторных диаграмм, графики $v(t), x(t)$. +3. **Ch2 (§15–24)** — динамика, 10 §. Силы, законы Ньютона, гравитация. +4. **Ch3 (§25–30)** — статика, 6 §. Рычаги, блоки, Архимед. +5. **Ch5 (ЛР1–12)** — 12 лаб. работ по шаблону источника. + +Для каждого § (и каждой ЛР) — полная канва из источника (см. шаблон выше). + +### Фаза 6. Удаление монолита и проверка +- Удалить `frontend/textbooks/physics_9.html` (после переноса §31–36 в Ch4). +- Запустить сервер, проверить визуально: hub → 5 карточек → каждая глава → KaTeX, dark mode, XP, прогресс, breadcrumb. +- В админке: «Физика — 9 класс» как hub с 5 child-главами. +- `ast-index rebuild` (новые файлы). + +### Фаза 7. Git +Коммит на каждую завершённую фазу (только изменённые файлы, не `git add -A`). Финальный коммит после Phase 6. + +--- + +## 📂 Файлы, которые будут созданы/изменены + +**Новые:** +- `plans/textbooks-9/PLAN_PHYSICS_9.md` (этот файл) ✅ +- `backend/scripts/gen_phys9_hub.js` +- `backend/scripts/gen_phys9_ch.js` +- `backend/src/db/migrations/038_physics_9_hub.sql` +- `frontend/textbooks/physics_9_hub.html` +- `frontend/textbooks/physics_9_ch1.html` … `physics_9_ch5.html` +- `frontend/js/phys9.js` (опционально, если новых хелперов хватит на отдельный файл — иначе расширить `phys.js`) + +**Удаляется:** +- `frontend/textbooks/physics_9.html` (после переноса §31–36 в Ch4) + +**Изменяется:** +- `frontend/admin.html` — если требуется обновление списка учебников (TBD: проверить, реактивен ли список к таблице `textbooks` или есть хардкод). + +--- + +## ⚠️ Открытые вопросы + +1. **`para_count` у hub-строки** = 36 (только §) — проверить, как Phys 10 (`para_count=37`) учитывает прогресс. Если ЛР тоже должны учитываться — увеличить до 48. +2. **Видео-демоопыты (📱)** — встраиваем статичную SVG-иллюстрацию + текст? Или будут видеофайлы? По умолчанию — статика, без видео. +3. **Интерактивные модели (🎱)** — лимит на сложность. По умолчанию: 1 виджет на 3-4 §, не пытаться сделать каждый параграф интерактивным.