5381679c68
Зафиксирована накопленная незакоммиченная работа рабочего дерева, КРОМЕ файлов учебника «Химия 7» (migration 046, chemistry_7_*.html, chem7_svg.js, тест — оставлены незакоммиченными по запросу). Включает: модуль биохимии (ядро BIO, 3D VSEPR, химдвижок, баланс, challenges, пути из БД), System Health Level 1 (вердикт/мониторинг), а также frontend- страницы и lab/textbooks-правки параллельной сессии. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
364 lines
34 KiB
Markdown
364 lines
34 KiB
Markdown
# План реализации: Химия 9 (Беларусь) — интерактивный наглядный учебник
|
||
|
||
> Цель: превратить существующий «текстовый» каркас `chemistry_9.html` в **максимально
|
||
> полный, интерактивный и наглядный** учебник по всей программе 9 класса —
|
||
> на уровне качества уже сделанных Физики 9 / Алгебры 9 / Геометрии 9, но с
|
||
> химической спецификой (молекулы, уравнения реакций, ионы, осадки, газы, симуляторы).
|
||
|
||
---
|
||
|
||
## 🎯 Источник
|
||
|
||
| Параметр | Значение |
|
||
|----------|----------|
|
||
| Книга | `Himiya_Shimanovich_9kl_rus_2025.pdf` |
|
||
| Авторы | Шиманович И. Е., Василевская Е. И., Зураев А. В., Красицкий В. А., Сечко О. И. |
|
||
| Под ред. | И. Е. Шимановича |
|
||
| Изд. | Минск, «Адукацыя і выхаванне», 2025 (2-е изд., переработанное), 288 с. |
|
||
| ISBN | 978-985-34-0189-9 |
|
||
| Структура | **4 главы, 53 §, 6 лабораторных опытов, 4 практические работы** |
|
||
| Справочные таблицы | ПСХЭ Менделеева, таблица растворимости, ряд активности металлов (форзацы) |
|
||
|
||
PDF лежит в `G:\Dev\Тесты\Методички\тест_6 класс\Книги\` (есть и издание 2019 г.).
|
||
|
||
---
|
||
|
||
## 📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (53 §)
|
||
|
||
Колонка **«Интерактив»** — главный наглядный элемент, который страница ДОЛЖНА давать
|
||
сверх текста (минимум 1 «звёздный» виджет на §; полный набор виджетов — ниже в стандарте).
|
||
|
||
### ГЛАВА 1. Повторение курса 8 класса (§§1–3) — *amber*
|
||
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|
||
|---|------|------|------------------------------|
|
||
| §1 | Основные классы неорганических веществ | оксиды/кислоты/основания/соли, генетическая связь | **Классификатор**: drag формулы → класс; граф генетических переходов |
|
||
| §2 | Строение атома и периодический закон | $Z$, $p/n/e$, $1s^22s^2…$, периодичность | **Интерактивная ПСХЭ** (`periodic`) + конструктор электронной конфигурации |
|
||
| §3 | Химическая связь | ионная / ковалентная (полярн./неполярн.) / металлическая, ЭО | **Визуализатор связи**: slider ЭО → тип связи; диполь, электронные пары |
|
||
|
||
### ГЛАВА 2. Растворы. Теория электролитической диссоциации (§§4–11) — *blue*
|
||
| § | Тема | Ключ | Интерактив |
|
||
|---|------|------|------------|
|
||
| §4 | Растворы как смеси веществ | раствор = растворитель + растворённое в-во | Анимация растворения (частицы) |
|
||
| §5 | Качественные характеристики состава растворов | насыщ./ненасыщ./пересыщ., растворимость, кривые растворимости | **График растворимости** $s=f(t)$ с подвижной точкой |
|
||
| §6 | Количественные характеристики. Массовая доля | $w=\dfrac{m_{в-ва}}{m_{р-ра}}$, $c=\dfrac{n}{V}$ | **Калькулятор раствора** (w, c, разбавление, смешение) |
|
||
| §7 | Электролитическая диссоциация в растворах | электролиты/неэлектролиты, гидратация ионов | **Анимация диссоциации** NaCl/HCl в воде |
|
||
| §8 | Диссоциация кислот, оснований и солей | $HCl\to H^++Cl^-$, ступенчатая дисс. | Конструктор уравнений диссоциации |
|
||
| §9 | Реакции ионного обмена | условия необратимости: ↓ ↑ H₂O | **Предсказатель РИО** + конвертер молек.↔полн.ион.↔сокр.ион. |
|
||
| §10 | Свойства кислот/оснований/солей с точки зрения ТЭД | ионные сущности реакций | Матрица реакций «реагент × реагент» |
|
||
| §11 | Вода и растворы в жизни человека | значение воды, растворы в быту | Инфографика-исследование |
|
||
|
||
**Практическая работа 1** (после §6): приготовление раствора с заданной $w$.
|
||
**Практическая работа 2** (после §9): реакции ионного обмена.
|
||
|
||
### ГЛАВА 3. Неметаллы (§§12–39) — *cyan / teal*
|
||
| § | Тема | Ключ | Интерактив |
|
||
|---|------|------|------------|
|
||
| §12 | Общая характеристика неметаллов | положение в ПСХЭ, ЭО, окислители | Подсветка неметаллов в ПСХЭ |
|
||
| §13 | Простые вещества неметаллы | аллотропия (O₂/O₃, алмаз/графит/фуллерен) | **3D-модели аллотропов** (biochem 3D) |
|
||
| §14 | Водород | получение, св-ва, $H_2+O_2$ | Сборка прибора получения H₂ |
|
||
| §15 | Галогены | $F,Cl,Br,I$, окислит. способность ↓ | **Ряд активности галогенов** + вытеснение |
|
||
| §16 | Хлороводород. Соляная кислота | $HCl$, свойства | Диссоциация + реакции HCl |
|
||
| §17 | Хлориды. Применение HCl и хлоридов | качеств. реакция на $Cl^-$ | **Качественная реакция** AgCl↓ (анимация осадка) |
|
||
| §18 | Кислород — элемент и простое вещество | $O_2$, окисление, горение | Симулятор горения |
|
||
| §19 | Кислород в природе. Получение и применение | круговорот, способы получения | Инфографика круговорота |
|
||
| §20 | Сера — элемент и простое вещество | аллотропия серы, $S+Me$ | 3D-модель S₈ |
|
||
| §21 | Сероводород | $H_2S$, св-ва, сульфиды | Реакции H₂S |
|
||
| §22 | Оксид серы(IV) и оксид серы(VI) | $SO_2, SO_3$, кислотные оксиды | Кислотные дожди (инфографика) |
|
||
| §23 | Серная кислота | $H_2SO_4$ конц./разб., безопасность | **Анимация разбавления** (кислоту в воду!) |
|
||
| §24 | Реакции получения серной кислоты. Практический выход | контактный способ, $\eta$ | Калькулятор практического выхода |
|
||
| §25 | Сульфаты. Применение | качеств. реакция на $SO_4^{2-}$ | **Качественная реакция** BaSO₄↓ |
|
||
| §26 | Азот — элемент и простое вещество | $N_2$, тройная связь | 3D-модель N₂ |
|
||
| §27 | Аммиак | $NH_3$, донорно-акц. связь | **Фонтан аммиака** (анимация) |
|
||
| §28 | Соли аммония | $NH_4^+$, разложение | Качеств. реакция на $NH_4^+$ |
|
||
| §29 | Азотная кислота | $HNO_3$, особые окислит. св-ва | Реакции с металлами (без H₂) |
|
||
| §30 | Нитраты. Применение HNO₃ и нитратов | разложение нитратов, селитры | Карта разложения нитратов |
|
||
| §31 | Фосфор — элемент и простое вещество | аллотропия (бел./красн.) | 3D-модель P₄ |
|
||
| §32 | Кислородсодержащие соединения фосфора | $P_2O_5, H_3PO_4$, фосфаты | Ступенчатая диссоциация H₃PO₄ |
|
||
| §33 | Минеральные удобрения | N/P/K, аммофос, суперфосфат | **NPK-калькулятор** удобрений |
|
||
| §34 | Углерод — элемент и простое вещество | аллотропия (алмаз/графит/фуллерен), адсорбция | **3D-модели** + адсорбция |
|
||
| §35 | Оксиды углерода | $CO$ (яд), $CO_2$ | Свойства CO/CO₂ |
|
||
| §36 | Угольная кислота и её соли | $H_2CO_3$, карбонаты/гидрокарбонаты, жёсткость | **Качеств. реакция** на $CO_3^{2-}$ (вскипание) + сталактиты |
|
||
| §37 | Кремний — элемент и простое вещество | $Si$, полупроводник | 3D-решётка (как алмаз) |
|
||
| §38 | Оксид кремния(IV). Кремниевая кислота | $SiO_2$, силикаты | Структура SiO₂ |
|
||
| §39 | Строительные материалы | стекло, керамика, цемент, бетон | Конструктор «варки стекла» |
|
||
|
||
**Лаб. опыты**: 1 — на $Cl^-$ (после §17), 2 — на $SO_4^{2-}$ (после §25), 3 — на $NH_4^+$ (после §28), 4 — на $CO_3^{2-}$ (после §36).
|
||
**Практическая работа 3** (после §39): решение экспериментальных задач «Неметаллы».
|
||
|
||
### ГЛАВА 4. Металлы (§§40–53) — *deep-orange / rose*
|
||
| § | Тема | Ключ | Интерактив |
|
||
|---|------|------|------------|
|
||
| §40 | Металлы. Общая характеристика элементов | положение в ПСХЭ, $Me^0-ne^-\to Me^{n+}$ | Подсветка металлов в ПСХЭ |
|
||
| §41 | Простые вещества металлы. Физические свойства. Сплавы | металлич. связь, «электронный газ», сплавы | **Модель металлич. связи** + конструктор сплавов |
|
||
| §42 | Общие химические свойства металлов | ряд активности, $Me$+кислота/соль/вода | **Интерактивный ряд активности** (предсказание реакции) |
|
||
| §43 | Щелочные металлы | $Li,Na,K…$, реакция с водой | Анимация $Na+H_2O$ |
|
||
| §44 | Важнейшие соединения натрия и калия | $NaOH, Na_2CO_3$, применение | Применение (инфографика) |
|
||
| §45 | Электролиз расплавов солей | катод/анод, $2NaCl\to2Na+Cl_2$ | **Симулятор электролиза** (`electrolysis`) |
|
||
| §46 | Магний и щёлочноземельные металлы | $Mg,Ca,Sr,Ba$, цвета пламени | **Цвета пламени** (интерактив) |
|
||
| §47 | Важнейшие соединения магния и кальция | $CaO, Ca(OH)_2, CaCO_3$, гипс | Превращения Ca-соединений |
|
||
| §48 | Качественное обнаружение ионов Ca²⁺/Ba²⁺. Жёсткость воды | $Ba^{2+}+SO_4^{2-}$, жёсткость, умягчение | **Симулятор жёсткости воды** + устранение |
|
||
| §49 | Алюминий | $Al$, амфотерность, алюмотермия | Реакции Al (амфотерность) |
|
||
| §50 | Оксид и гидроксид алюминия. Соли алюминия | $Al_2O_3, Al(OH)_3$ амфотерны | **Амфотерность** (реакция и с кислотой, и со щёлочью) |
|
||
| §51 | Железо. Физические и химические свойства. Коррозия | $Fe$, $Fe^{2+}/Fe^{3+}$, ржавление | **Симулятор коррозии** |
|
||
| §52 | Важнейшие соединения железа. Качественные реакции на ионы железа | $FeO/Fe_2O_3$, $Fe^{2+}/Fe^{3+}$ обнаружение | **Качеств. реакции** на $Fe^{2+}, Fe^{3+}$ |
|
||
| §53 | Получение железа. Применение | доменная печь, чугун/сталь | **Анимация доменной печи** |
|
||
|
||
**Лаб. опыт 5** (после §48): качеств. реакции на $Ca^{2+}/Ba^{2+}$.
|
||
**Лаб. опыт 6** (после §52): получение и окисление $Fe(OH)_2$.
|
||
**Практическая работа 4** (после §52): решение экспериментальных задач «Металлы».
|
||
|
||
**Итого**: 53 §, 4 главы, 6 лаб. опытов, 4 практические работы.
|
||
|
||
---
|
||
|
||
## 🔍 ТЕКУЩЕЕ СОСТОЯНИЕ `chemistry_9.html` (gap-анализ)
|
||
|
||
Файл уже существует: `frontend/textbooks/chemistry_9.html` (~860 КБ, 10 659 строк).
|
||
|
||
**Что есть ✅**
|
||
- Скелет страницы по образцу физики: header, para-selector (карточки секций), табы, sidebar
|
||
- Все 53 § как `data-para="p1"..."p53"` (структура совпадает с реальной книгой)
|
||
- Amber-палитра + dark mode, адаптив
|
||
- ~58 маркеров `boss/quiz/тренаж` — есть зачатки тренажёров
|
||
- Автоначисление XP через `/js/textbook-xp-widget.js` (+5 XP за первый клик по §)
|
||
- Прогресс/закладки через `/js/textbook-tracker.js` + БД (`textbooks`, `textbook_progress`, `textbook_bookmarks`)
|
||
|
||
**Чего НЕТ ❌ (главный объём работы)**
|
||
- **Наглядность**: всего **12 `<svg>` на весь файл**, **0 `<canvas>`**, **0 симуляторов** (`openSim` не вызывается ни разу)
|
||
- **0 молекулярных моделей** (хотя `biochem-core.js` умеет 2D/3D шаростержневые)
|
||
- **0 рендера уравнений реакций** (нет стрелок реакций `→ ⇌ ↑ ↓ →[t]`, коэффициентов, состояний)
|
||
- **0 глоссария** (в других учебниках есть)
|
||
- Таблица растворимости и ряд активности — **только картинки на форзаце, не интерактивны**
|
||
- Заголовок/водяной знак содержат артефакты от копирования шаблона «МЕТАЛЛЫ»; title `«§1–60»` — **устарел** (реально 53 §)
|
||
- Секционная группировка карточек (`psel-c1..c6`) не выровнена на 4 главы книги
|
||
|
||
**Вывод**: каркас переиспользуем, но содержательно страница «текстовая». План = наполнить
|
||
её химическим интерактивом и наглядностью + исправить метаданные.
|
||
|
||
---
|
||
|
||
## ⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА
|
||
|
||
### A. Движки и переиспользуемые активы
|
||
|
||
| Что нужно | Берём из | Файл |
|
||
|-----------|----------|------|
|
||
| Парсинг формул, молярная масса, формула Хилла | biochem-core | `frontend/js/biochem-core.js` |
|
||
| 2D/3D шаростержневые модели, VSEPR-геометрия | biochem-core | `frontend/js/biochem-core.js` |
|
||
| Интерактивная ПСХЭ | sim `periodic` | реестр `frontend/js/labs/` |
|
||
| Электролиз | sim `electrolysis` | реестр |
|
||
| Титрование | sim `titration` | реестр |
|
||
| Качественный анализ | sim `qualanalysis` | реестр |
|
||
| Растворы/концентрации | sim `solutions` | реестр |
|
||
| Стехиометрия | sim `stoichiometry` | реестр |
|
||
| Песочница реакций | sim `chemsandbox` | реестр |
|
||
|
||
Симуляторы монтируются как в других страницах: контейнер `<div id="sim-<id>"></div>` +
|
||
вызов `openSim('<id>')` (или прямой mount через `window.LabRegistry`).
|
||
|
||
### B. Новый общий хелпер `/js/chem9_svg.js` (по образцу `geom7_svg.js`, `alg10_svg.js`)
|
||
|
||
Чисто химические примитивы, которых нет в biochem-core:
|
||
|
||
```js
|
||
// 1. Рендер уравнения реакции: коэффициенты, состояния, стрелки, условия над стрелкой
|
||
// chemEq('2Na + 2H2O -> 2NaOH + H2^', {cond:'', arrow:'->'}) → HTML с верхн./нижн. индексами, ↑↓, ⇌, →[t°]
|
||
const chemEq = (src, opts={}) => { /* токенизация формул, KaTeX-подобный рендер */ };
|
||
|
||
// 2. Ион с зарядом: ionLabel('SO4', -2) → 'SO₄²⁻'
|
||
const ionLabel = (formula, charge) => { /* нижние индексы + надстрочный заряд */ };
|
||
|
||
// 3. Пробирка с осадком / газом / окраской (SVG-анимация)
|
||
const testTube = ({fill, precipitate, gas, color, label}) => { /* svg */ };
|
||
|
||
// 4. Орбитальная диаграмма (стрелки в клетках): orbitalDiagram('1s2 2s2 2p6 3s2 3p2')
|
||
const orbitalDiagram = (config) => { /* svg клетки + ↑↓ */ };
|
||
|
||
// 5. Интерактивная таблица растворимости (виджет с подсветкой пары катион×анион)
|
||
const solubilityTable = (mount, {highlight}) => { /* P/Н/М/— из форзаца */ };
|
||
|
||
// 6. Интерактивный ряд активности металлов (drag/клик → предсказание реакции)
|
||
const activitySeries = (mount, opts) => { /* K Ca Na Mg Al Zn Fe ... Au */ };
|
||
|
||
// 7. Мини-ПСХЭ с подсветкой (элемент/группа/период/семейство)
|
||
const miniPeriodic = (mount, {highlight, onClick}) => { /* 118 элементов */ };
|
||
|
||
// 8. Индикатор + шкала pH (лакмус/фенолфталеин/метилоранж)
|
||
const indicatorScale = (mount, {ph, indicator}) => { /* цвет полоски */ };
|
||
|
||
// 9. Анимация диссоциации/растворения (частицы ионов разлетаются)
|
||
const dissociationAnim = (mount, {salt}) => { /* canvas/SVG-частицы */ };
|
||
```
|
||
|
||
Молекулы (структурные/шаростержневые/3D) — **через `biochem-core.js`**, не дублировать.
|
||
|
||
### C. Правила рендера химии (обязательны с §1)
|
||
|
||
1. **Формулы веществ** — нижние индексы для атомов ($H_2O$, $CaCO_3$), верхние для зарядов ионов ($SO_4^{2-}$); единый рендер через `chemEq`/`ionLabel`, не «сырой» текст.
|
||
2. **Уравнения реакций** — всегда сбалансированы; стрелки: `=`/`→` (необратимая), `⇌` (обратимая), `↑` (газ), `↓` (осадок), условия над стрелкой ($t$, $\text{кат.}$, $\text{эл.ток}$).
|
||
3. **Состояние** — для качественных реакций обязательно показывать признак: цвет осадка, пузырьки газа, изменение окраски индикатора (через `testTube`/`indicatorScale`).
|
||
4. **Ионные уравнения** — для §9–10 и всех качественных реакций давать тройку: молекулярное → полное ионное → сокращённое ионное (виджет-конвертер).
|
||
5. **Молекулярные модели** — структурная формула + 3D (biochem-core); для каждого изучаемого простого вещества/важного соединения хотя бы 1 модель.
|
||
6. **Цвета — химически достоверные**: осадки ($AgCl$ белый, $Cu(OH)_2$ голубой, $Fe(OH)_3$ бурый, $Fe(OH)_2$ зеленоватый), пламя ($Ca$ кирпично-красный, $Sr$ карминовый, $Ba$ жёлто-зелёный, $Na$ жёлтый, $K$ фиолетовый).
|
||
7. **Безопасность** — где уместно (разбавление $H_2SO_4$, ядовитость $CO$, $H_2S$) — заметка-«скрепка» с предупреждением.
|
||
8. **KaTeX-эскейпы** — в JS-шаблонах двойной backslash (`\\to`, `\\downarrow`, `\\rightleftharpoons`).
|
||
9. **Drag/слайдеры** — `window`-listeners + `{passive:false}` + state ВЫШЕ `redraw()` (как в стандарте геометрии), `touch-action:none` на draggable SVG/canvas.
|
||
10. **Без эмоджи** — только inline SVG `.ic`/`.ico` (правило проекта).
|
||
|
||
### D. Типы интерактивов по химическим темам
|
||
|
||
| Тип темы | Интерактив |
|
||
|----------|------------|
|
||
| Строение атома / ПСХЭ (§2, 12, 40) | `miniPeriodic`, `orbitalDiagram`, sim `periodic` |
|
||
| Химическая связь (§3) | slider ЭО → тип связи, диполь, e-пары |
|
||
| Растворы (§4–6) | калькулятор $w$/$c$/разбавления, график растворимости, sim `solutions` |
|
||
| Диссоциация / РИО (§7–10) | `dissociationAnim`, конвертер ионных уравнений, `solubilityTable` |
|
||
| Аллотропия (§13, 20, 31, 34, 37) | 3D-модели biochem-core |
|
||
| Качественные реакции (§17, 25, 28, 36, 48, 52) | `testTube` + ионное уравнение + признак |
|
||
| Кислоты/основания (§16, 23, 29, 32) | `indicatorScale`, ступенчатая диссоциация |
|
||
| Ряд активности / свойства металлов (§42, 43, 49) | `activitySeries`, предсказатель реакции |
|
||
| Электролиз (§45) | sim `electrolysis` |
|
||
| Окисл.-восст. / горение (§14, 18) | анимация горения, баланс ОВР |
|
||
| Производство (§24, 39, 45, 53) | пошаговые схемы (контактный способ, варка стекла, доменная печь) |
|
||
| Удобрения / прикладное (§33, 44, 47, 11) | калькуляторы, инфографика |
|
||
|
||
---
|
||
|
||
## 📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)
|
||
|
||
Каждый § после доработки содержит:
|
||
|
||
**Теория (3–4 карточки):**
|
||
- `theory` — основное определение/понятие + наглядная SVG/модель
|
||
- `rule` — ключевая закономерность/формула (рамка)
|
||
- `example` — разобранный пример (реакция/расчёт) с пошаговым рендером
|
||
- (для прикладных §) `apply` — применение/значение (инфографика)
|
||
|
||
**Интерактивы (4–6 на §):**
|
||
1. **Звёздный виджет** темы (из карты содержания выше)
|
||
2. **Конструктор/симулятор** (slider / drag / sim из реестра)
|
||
3. **Калькулятор** (молярная масса, $w$, выход, по уравнению) — где применимо
|
||
4. **DnD-сортер / классификатор** (классы веществ, тип связи, признак реакции)
|
||
5. **Тренажёр** — 5 задач с inline-наглядностью (формула/уравнение/модель в условии)
|
||
6. **Босс §** — 4 интеграционные задачи (+5 XP каждая)
|
||
|
||
**Дополнительно:**
|
||
- Пополнение **глоссария** (термины §)
|
||
- **Вопросы и задания** из учебника (адаптированные, с проверкой)
|
||
- jsdom-тест страницы проходит
|
||
|
||
**Финал главы:**
|
||
- **Итоговая шпаргалка** — mini-cards (формула/реакция/иконка) по каждому §
|
||
- **Карта связей** — SVG-граф понятий главы (генетические связи веществ)
|
||
- **7 интегрированных боссов** (каждый ≥2 темы, +10 XP)
|
||
- **Achievement** «Мастер главы N» (+50 XP, confetti)
|
||
- Кнопка перехода к следующей главе
|
||
|
||
---
|
||
|
||
## 🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)
|
||
|
||
### Phase 0 — Фундамент
|
||
- Исправить метаданные `chemistry_9.html`: `<title>Химия 9 — §1–53`, убрать артефакт «МЕТАЛЛЫ» в water-mark/CSS, починить кодировку заголовков (UTF-8).
|
||
- Перегруппировать карточки para-selector на **4 главы** книги (цвета: I amber, II blue, III teal/cyan, IV deep-orange).
|
||
- Создать `/js/chem9_svg.js` с хелперами A–B (заглушки → реализация по мере фаз).
|
||
- Подключить `biochem-core.js` и нужные симуляторы на страницу.
|
||
- **Миграция БД** (следующий номер после `040_content_access.sql` → `041_chemistry9_fix.sql`): обновить запись `chemistry-9` — `para_count = 53`, корректные `title`/`author`/`description`, `color='amber'`. (Слаг и html_path уже есть из migration 004.)
|
||
- jsdom-тест-каркас для страницы.
|
||
|
||
### Phase 1 — Глава 1 «Повторение» (§§1–3) — разогрев
|
||
Простые темы, но закладываем 3 базовых движка: `miniPeriodic`, `orbitalDiagram`, визуализатор связи. Эти виджеты переиспользуются во всех 4 главах.
|
||
|
||
### Phase 2 — Глава 2 «Растворы. ТЭД» (§§4–11) + ПР1, ПР2
|
||
Самая «расчётно-логическая». Закладываем `solubilityTable`, конвертер ионных уравнений, `dissociationAnim`, калькулятор раствора, sim `solutions`. Эти движки критичны для всей химии 9.
|
||
|
||
### Phase 3 — Глава 3 «Неметаллы» (§§12–25): галогены, кислород, сера + лаб.1, лаб.2
|
||
SVG/модели-тяжёлая. 3D-аллотропы (biochem-core), первые качественные реакции (`testTube`: $AgCl↓$, $BaSO_4↓$), горение, безопасность $H_2SO_4$.
|
||
|
||
### Phase 4 — Глава 3 «Неметаллы» (§§26–39): азот, фосфор, углерод, кремний + лаб.3, лаб.4, ПР3
|
||
Фонтан аммиака, NPK-калькулятор, качеств. реакция на $CO_3^{2-}$, сталактиты, варка стекла/цемент.
|
||
|
||
### Phase 5 — Глава 4 «Металлы» (§§40–48): общие свойства, щелочные, ЩЗМ + лаб.5
|
||
`activitySeries`, sim `electrolysis`, цвета пламени, симулятор жёсткости воды, качеств. на $Ca^{2+}/Ba^{2+}$.
|
||
|
||
### Phase 6 — Глава 4 «Металлы» (§§49–53): алюминий, железо + лаб.6, ПР4
|
||
Амфотерность $Al(OH)_3$, качеств. на $Fe^{2+}/Fe^{3+}$, симулятор коррозии, анимация доменной печи.
|
||
|
||
### Phase 7 — Финалы глав + общий финал учебника
|
||
- Шпаргалки и карты связей по каждой главе
|
||
- Интегрированные боссы + achievements
|
||
- **Большой финал**: генетическая карта «неметаллы ↔ металлы ↔ соли», итоговый босс-квест, ачивка «Химик 9 класса»
|
||
- Глоссарий собран целиком, связан `[[ссылками]]`
|
||
|
||
### Phase 8 — Качество и админка
|
||
- Полный прогон jsdom-тестов (каждый § — builder не stub)
|
||
- Аудит KaTeX/`chemEq`-эскейпов, баланса всех уравнений
|
||
- Синхронизация с админкой (если симуляторы добавлялись в `lab.html` → обновить `ADMIN_SIMS` в `admin.html` — правило проекта)
|
||
- Проверка доступа по классам/ученикам (`contentAccess`, `/api/access`)
|
||
|
||
> Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit + проходящий jsdom-тест.
|
||
|
||
---
|
||
|
||
## 🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ
|
||
|
||
| Точка | Действие |
|
||
|-------|----------|
|
||
| **БД каталог** | `textbooks` уже содержит `chemistry-9` (migration 004). Миграция `041` — поправить `para_count=53`, title/description. |
|
||
| **Прогресс/XP** | Автоматически: `textbook-xp-widget.js` (+5 XP/§), `textbook-tracker.js`, `LS.xp`. Доп. XP за боссов — по образцу `phys7_ch1_widgets.js`. |
|
||
| **Симуляторы** | Реестр `frontend/js/labs/_register-all.js` + `lab-glue.js`. Химические sim уже зарегистрированы (`periodic`, `electrolysis`, `titration`, `qualanalysis`, `solutions`, `stoichiometry`, `chemsandbox`). |
|
||
| **Молекулы** | `biochem-core.js` (парсинг, молярная масса, 2D/3D, VSEPR). |
|
||
| **Бэкенд** | Роуты готовы: `backend/src/routes/textbooks.js` (catalog/progress/bookmarks). Доступ: `backend/src/services/contentAccess.js`. |
|
||
| **Глоссарий** | Реализовать виджет на странице (общего нет) — всплывающие определения по терминам. |
|
||
| **Тесты** | `cd backend && npm test` (jsdom). На каждый § — тест: страница строится, builder не stub, уравнения сбалансированы. |
|
||
| **Админка** | Если добавляются новые sim в `lab.html` → синхронно обновить `ADMIN_SIMS` в `admin.html`. |
|
||
|
||
---
|
||
|
||
## ⚠️ КРИТИЧЕСКИЕ ПРАВИЛА
|
||
|
||
### ❌ НЕ делать
|
||
- Не оставлять «сырые» формулы текстом — только через `chemEq`/`ionLabel`/KaTeX.
|
||
- Не публиковать несбалансированные уравнения (аудит баланса перед commit).
|
||
- Не дублировать молекулярный движок — использовать `biochem-core.js`.
|
||
- Не использовать `setPointerCapture` (теряется после `innerHTML`-replace) → `window`-listeners + state-flag.
|
||
- `\to`, `\downarrow`, `\rightleftharpoons` без удвоения backslash в JS-шаблонах.
|
||
- Slider-диапазоны за пределы химически возможного (концентрации, температуры).
|
||
- Эмоджи — запрещены; только inline SVG `.ic`.
|
||
- Grep tool — запрещён; поиск только `ast-index`.
|
||
|
||
### ✅ Обязательно
|
||
- Каждый commit → jsdom-тест 100% pass.
|
||
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
|
||
- Качественная реакция = уравнение (молек.+ионное) **+ видимый признак** (`testTube`/индикатор).
|
||
- Цвета осадков/пламени — химически достоверные.
|
||
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
|
||
- Коммитить только изменённые файлы (не `git add -A`), сразу push (правило CLAUDE.md).
|
||
|
||
---
|
||
|
||
## 📊 Оценка объёма
|
||
|
||
| Глава | § | Лаб/ПР | Ожидаемый LOC |
|
||
|-------|---|--------|---------------|
|
||
| Гл.1 Повторение | 3 | — | ~3 500 (+движки ПСХЭ/орбитали/связь) |
|
||
| Гл.2 Растворы. ТЭД | 8 | ПР1, ПР2 | ~9 000 (+`solubilityTable`, ионные ур-я, `solutions`) |
|
||
| Гл.3 Неметаллы | 28 | 4 лаб, ПР3 | ~28 000 (модели, качеств. реакции, безопасность) |
|
||
| Гл.4 Металлы | 14 | 2 лаб, ПР4 | ~16 000 (ряд активности, электролиз, коррозия, доменная печь) |
|
||
| Финалы глав + общий | — | — | ~5 000 |
|
||
| `/js/chem9_svg.js` хелперы | — | — | ~2 500 |
|
||
| **Итого** | **53** | **6 лаб + 4 ПР** | **~64 000 LOC** |
|
||
|
||
Существующий каркас (~10 700 строк) переиспользуется; основной прирост — интерактив,
|
||
наглядность и движки.
|
||
|
||
---
|
||
|
||
## 🎬 Запуск
|
||
|
||
**Phase 0**: чистка метаданных `chemistry_9.html` + перегруппировка на 4 главы +
|
||
`/js/chem9_svg.js` (скелет) + подключение `biochem-core.js`/симуляторов + миграция `041`.
|
||
**Phase 1**: Глава 1 (§§1–3) — закладываем `miniPeriodic`, `orbitalDiagram`, визуализатор связи.
|
||
|
||
Дальше — последовательно по главам (Phase 2 → 6), затем финалы (Phase 7) и качество (Phase 8).
|