feat(chemistry-8): Phase 0 — каркас учебника «Химия 8» (hub + 7 глав) Архитектура hub + главы (как физика 7–11, алгебра, геометрия), не монолит. - chemistry_8_hub.html: хаб-каталог 7 разделов, amber-палитра, прогресс из /api/textbooks/chemistry-8/children, achievement «Химик 8 класса» - 7 каркасов глав (вводный + гл.1–6, §1–52) с оглавлением и баннером «в разработке» - /js/chem8_svg.js: неймспейс Chem8 (formula/ionLabel/chemEq готовы, 13 хелперов-заглушек) - миграция 041: родитель chemistry-8 + 7 детей (parent_slug), para_count сумма = 52 - gen_chem8_skeletons.js: генератор каркасов глав - tests/chemistry8.test.js: 9 тестов (примитивы + целостность каркаса), все зелёные - PLAN_CHEMISTRY_8.md обновлён под hub-архитектуру Источник: Шиманович, Красицкий, Сечко, Хвалюк. Химия 8, Народная асвета, 2018. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> @
39 KiB
План реализации: Химия 8 (Беларусь) — интерактивный наглядный учебник
Цель: создать с нуля интерактивный наглядный учебник по всей программе 8 класса в современной архитектуре hub + главы (как Физика 7–11 / Алгебра / Геометрия — НЕ как легаси-монолит
chemistry_9.html), на уровне их качества, с поправкой на содержание 8 класса: количественные понятия (моль, M, Vm, расчёты по уравнениям), классы неорганических соединений, периодический закон, строение атома, химическая связь, ОВР, растворы.Архитектура (утверждена):
chemistry_8_hub.html(хаб-каталог глав) + 7 файлов глав (вводный раздел + 6 глав книги). В БД — родительchemistry-8+ 7 детей сparent_slug. Каждая глава — самостоятельная страница со своими § (см. карту ниже), модульный CSS/JS на предмет. Единый стандарт с планом Химии 9 (plans/textbooks-9/PLAN_CHEMISTRY_9.md).
🎯 Источник
| Параметр | Значение |
|---|---|
| Книга | himiya_8kl_shimanovich_rus_2018 (1).pdf |
| Авторы | Шиманович И. Е., Красицкий В. А., Сечко О. И., Хвалюк В. Н. |
| Изд. | Минск, «Народная асвета», 2018, 243 с. (тираж 116 000) |
| Структура | Вводный раздел + 6 глав, 52 §, 4 лабораторных опыта, 4 практические работы |
| Справочные таблицы | ПСХЭ Менделеева, таблица растворимости, ряд активности металлов (форзацы) |
PDF лежит в G:\Dev\Тесты\Методички\тест_6 класс\Книги\. Оглавление — стр. 238–239 PDF.
Важные отличия от Химии 9:
- Страниц химии-8 ещё нет — строим с нуля. Каркас берём у современных hub-учебников (
physics_9_hub.html+physics_9_chN.html), а НЕ у легаси-монолитаchemistry_9.html.- Описательной химии металлов/неметаллов в 8 классе нет (это 9 класс) — акцент на количественные расчёты, классификацию веществ, строение атома и химическую связь, ОВР.
Соответствие «раздел книги → файл главы → slug»:
Раздел книги § Файл slug Цвет Вводный: Количественные понятия 1–9 chemistry_8_intro.htmlchemistry-8-introamber Гл.1 Классы неорг. соединений 10–23 chemistry_8_ch1.htmlchemistry-8-ch1teal Гл.2 Периодический закон и ПСХЭ 24–28 chemistry_8_ch2.htmlchemistry-8-ch2indigo Гл.3 Строение атома 29–35 chemistry_8_ch3.htmlchemistry-8-ch3blue Гл.4 Химическая связь 36–41 chemistry_8_ch4.htmlchemistry-8-ch4green Гл.5 ОВР 42–45 chemistry_8_ch5.htmlchemistry-8-ch5deep-orange Гл.6 Растворы 46–52 chemistry_8_ch6.htmlchemistry-8-ch6cyan Хаб:
chemistry_8_hub.html/ slugchemistry-8(родитель в каталоге).
📗 ПОЛНАЯ КАРТА СОДЕРЖАНИЯ (52 §)
Колонка «Интерактив» — главный наглядный элемент сверх текста (минимум 1 «звёздный» виджет на §; полный набор — в стандарте ниже).
ВВОДНЫЙ РАЗДЕЛ. Повторение курса 7 класса. Количественные понятия в химии (§§1–9) — amber
| § | Тема | Ключ | Интерактив (звёздный виджет) |
|---|---|---|---|
| §1 | Атомы. Химические элементы. Относительная атомная масса | Z, символ, A_r |
miniPeriodic + поиск A_r по элементу; модель атома |
| §2 | Молекулы. Простые/сложные вещества. Химические формулы. M_r |
формула, индексы, M_r=\sum A_r |
Конструктор формул + калькулятор M_r (biochem-core) |
| §3 | Химическое количество вещества | понятие «порция», n |
Визуализация «порции вещества» (частицы → моль) |
| §4 | Моль — единица количества вещества. Постоянная Авогадро | N=n\cdot N_A, N_A=6{,}02\cdot10^{23} |
Счётчик частиц N\leftrightarrow n, масштаб N_A |
| §5 | Молярная масса. Молярный объём газов | M (г/моль), V_m=22{,}4 л/моль (н.у.) |
Калькулятор M + газовая модель (V_m) |
| §6 | Вычисление n по m и m по n |
n=\dfrac{m}{M} |
Треугольник $n$–$m$–$M$ (интерактивный калькулятор-тренажёр) |
| §7 | Вычисление n газа по V и V по n |
n=\dfrac{V}{V_m} |
Калькулятор V=n\cdot V_m + связка $m$–$n$–$V$–N |
| §8 | Химические реакции | признаки, закон сохранения массы, балансировка | Балансировщик уравнений (анимация коэффициентов) + классификатор типов реакций |
| §9 | Количественные расчёты по уравнениям реакций | стехиометрия, мольные отношения | sim stoichiometry + пошаговый решатель «дано → по уравнению» |
Практическая работа 1 (после §7): «Химическое количество вещества».
ГЛАВА 1. Важнейшие классы неорганических соединений (§§10–23) — teal/cyan
| § | Тема | Ключ | Интерактив |
|---|---|---|---|
| §10 | Оксиды. Состав и классификация | Э_xO_y; осн./кисл./амфот./несолеобр. |
Классификатор оксидов (drag формулы → класс) + конструктор формул оксидов по валентности |
| §11 | Химические свойства оксидов | осн.оксид+кислота/вода; кисл.оксид+щёлочь/вода | Матрица реакций оксидов (chemEq, признаки) |
| §12 | Получение и применение оксидов | горение, разложение; применение | Схемы получения + инфографика применения |
| §13 | Кислоты. Состав и классификация | H_xAc; бескисл./кислородсод., основность |
Классификатор кислот + indicatorScale (лакмус/метилоранж) |
| §14 | Химические свойства кислот | + Me (ряд активности), + осн.оксид, + основание, + соль | Реакции кислот (4 типа) + ряд активности + indicatorScale |
| §15 | Получение и применение кислот | кисл.оксид+вода, соль+кислота | Схемы получения + инфографика |
| §16 | Основания | Me(OH)_n; щёлочи/нерастворимые |
Конструктор Me(OH)_n + indicatorScale (фенолфталеин малиновый) |
| §17 | Химические свойства оснований | нейтрализация, +кисл.оксид, +соль, разложение | Реакция нейтрализации (анимация) + indicatorScale |
| §18 | Получение и применение оснований | Me+вода, щёлочь+соль | Схемы; Лаб.1: получение нерастворимого основания (testTube $Cu(OH)_2$↓ голубой) |
| §19 | Соли. Состав и классификация | катион×анион; средние/кислые/основные | Конструктор солей (катион×анион) + solubilityTable |
| §20 | Химические свойства солей | РИО (↓↑), соль+Me (ряд активности) | solubilityTable + предсказатель РИО; Лаб.2: соли+металлы |
| §21 | Получение и применение солей | 8+ способов получения | Матрица способов получения солей |
| §22 | Взаимосвязь между классами неорг. веществ | генетическая связь Me/неMe → оксид → гидроксид → соль | Генетическая карта-граф (интерактивные переходы) |
| §23 | Решение расчётных задач по теме | расчёты по классам, по уравнениям | sim stoichiometry + тренажёр расчётов |
Лаб. опыт 1 (после §18): получение нерастворимого основания. Практическая работа 2 (после §18): изучение реакции нейтрализации. Лаб. опыт 2 (после §20): взаимодействие растворов солей с металлами. Практическая работа 3 (после §22): решение экспериментальных задач.
ГЛАВА 2. Периодический закон и периодическая система (§§24–28) — indigo/violet
| § | Тема | Ключ | Интерактив |
|---|---|---|---|
| §24 | Систематизация химических элементов | ранние классификации, металлы/неметаллы | Сортировщик элементов (Me/неMe/амфот.) |
| §25 | Понятие об амфотерности | Zn(OH)_2, Al(OH)_3 + кислота и + щёлочь |
Амфотерность (testTube, обе реакции); Лаб.3: гидроксид цинка |
| §26 | Естественные семейства элементов | щелочные, ЩЗМ, галогены, инертные | miniPeriodic — подсветка семейств, тренды свойств |
| §27 | Периодический закон Д. И. Менделеева | формулировка, периодичность | Демонстрация периодичности (карточки-раскладка элементов) |
| §28 | Периодическая система химических элементов | период/группа/подгруппа, структура | Интерактивная ПСХЭ (sim periodic) + разбор структуры |
Лаб. опыт 3 (после §25): получение гидроксида цинка и изучение амфотерных свойств.
ГЛАВА 3. Строение атома и периодичность свойств (§§29–35) — blue
| § | Тема | Ключ | Интерактив |
|---|---|---|---|
| §29 | Строение атома. Атомный номер | ядро (p^+,n^0) + e^-, Z |
Модель атома (sim bohratom) — сборка по Z |
| §30 | Массовое число атома. Нуклиды | A=Z+N, нуклид |
Калькулятор A=Z+N + конструктор нуклида |
| §31 | Изотопы. Явление радиоактивности | одинаковый Z, разный N; распад |
Изотопы-конструктор + sim radioactive + расчёт A_r по изотопам |
| §32 | Состояние электронов. Электронное облако. Орбиталь | s,p,d орбитали, форма облака |
3D-облака орбиталей (sim orbitals) |
| §33 | Строение электронных оболочек атомов | уровни, 2n^2, конфигурация |
Конструктор электронной конфигурации (orbitalDiagram, заполнение) |
| §34 | Периодичность изменения свойств атомов | радиус, ЭО, металличность по периоду/группе | Графики трендов (slider период/группа → свойство) |
| §35 | Характеристика элемента по положению в ПС | алгоритм «паспорта» элемента | Генератор «паспорта элемента» (пошагово) |
ГЛАВА 4. Химическая связь (§§36–41) — green
| § | Тема | Ключ | Интерактив |
|---|---|---|---|
| §36 | Природа химической связи | октет, энергия связи, устойчивость | Анимация «почему атомы соединяются» |
| §37 | Ковалентная связь | общие электронные пары, схемы Льюиса | Конструктор e-пар + структурные формулы (biochem-core) |
| §38 | Неполярная и полярная ков. связь. ЭО | $\Delta$ЭО → полярность, диполь | Slider ЭО → тип связи + диполь; Лаб.4: модели молекул (biochem-core 3D) |
| §39 | Ионная связь | передача e^-, ионная решётка |
Анимация $Na\to Cl$ + решётка NaCl |
| §40 | Металлическая связь. Межмолекулярное взаимодействие | «электронный газ», водородная связь | Модель электронного газа + водородная связь |
| §41 | Кристаллическое состояние вещества | 4 типа решёток → свойства | 4 типа решёток (3D) + связь «тип → свойства» |
Лаб. опыт 4 (после §38): составление моделей молекул.
ГЛАВА 5. Окислительно-восстановительные реакции (§§42–45) — deep-orange
| § | Тема | Ключ | Интерактив |
|---|---|---|---|
| §42 | Степень окисления | правила, расчёт по формуле | Калькулятор степени окисления (любая формула) |
| §43 | Процессы окисления и восстановления | отдача/приём e^-, окислитель/восстановитель |
Визуализация переноса e^- |
| §44 | Окислительно-восстановительные реакции | метод электронного баланса | Балансировщик ОВР (пошаговый e-баланс) |
| §45 | ОВР вокруг нас | горение, коррозия, дыхание, батарейки | Инфографика-исследование ОВР в жизни |
ГЛАВА 6. Растворы (§§46–52) — cyan
| § | Тема | Ключ | Интерактив |
|---|---|---|---|
| §46 | Смеси веществ | однородные/неоднородные, разделение | Классификатор смесей + методы разделения |
| §47 | Растворение веществ в воде | гидратация, тепловой эффект | Анимация растворения (dissociationAnim) |
| §48 | Характеристики растворимости веществ | s=f(t), насыщ./ненасыщ. |
График растворимости + solubilityTable |
| §49 | Качественные характеристики состава растворов | насыщ./ненасыщ./разб./конц. | Качественная шкала «крепости» раствора |
| §50 | Количественные характеристики. Массовая доля | w=\dfrac{m_{в-ва}}{m_{р-ра}} |
Калькулятор $w$ (sim solutions) |
| §51 | Молярная концентрация растворённых веществ | c=\dfrac{n}{V}, разбавление, смешение |
Калькулятор $c$ + разбавление/смешение |
| §52 | Вода и растворы в жизни и деятельности человека | значение, очистка, быт | Инфографика-исследование |
Практическая работа 4 (после §51): приготовление раствора с заданной w и c.
Итого: 52 §, вводный раздел + 6 глав, 4 лаб. опыта (§18, §20, §25, §38), 4 практические работы (§7, §18, §22, §51).
⚗️ ХИМИЧЕСКИЙ СТАНДАРТ КАЧЕСТВА
A. Движки и переиспользуемые активы (всё уже есть в проекте)
| Что нужно | Берём из | Файл / id |
|---|---|---|
Парсинг формул, $M$/M_r, формула Хилла |
biochem-core | frontend/js/biochem-core.js ✅ |
| 2D/3D шаростержневые модели, VSEPR | biochem-core | frontend/js/biochem-core.js ✅ |
| Интерактивная ПСХЭ | sim periodic |
реестр _register-all.js ✅ |
| Модель атома (Бор) | sim bohratom |
реестр ✅ |
| Орбитали | sim orbitals |
реестр ✅ |
| Радиоактивность/изотопы | sim radioactive |
реестр ✅ |
| Стехиометрия | sim stoichiometry |
реестр ✅ |
| Титрование (нейтрализация) | sim titration |
реестр ✅ |
| Качественный анализ | sim qualanalysis |
реестр ✅ |
| Растворы / массовая доля | sim solutions |
реестр ✅ |
| Песочница реакций | sim chemsandbox |
реестр ✅ |
Монтаж: контейнер <div id="sim-<id>"></div> + openSim('<id>') (или прямой mount
через window.LabRegistry), как на остальных страницах.
B. Общий хелпер /js/chem8_svg.js (по образцу geom7_svg.js, alg10_svg.js)
Рекомендация: химические примитивы 8 и 9 классов сильно пересекаются. Реализовать файл так, чтобы его можно было продвинуть в общий
/js/chem_svg.js(план Химии 9 ссылается наchem9_svg.js— при совместной разработке свести в один shared-модуль и переиспользовать оба). Молекулы — только черезbiochem-core.js, не дублировать.
// 1. Рендер уравнения реакции: коэффициенты, состояния (↑↓), стрелки, условия над стрелкой
const chemEq = (src, opts={}) => { /* токенизация формул, верхн./нижн. индексы, →/⇌/→[t°] */ };
// 2. Ион с зарядом: ionLabel('SO4', -2) → 'SO₄²⁻'
const ionLabel = (formula, charge) => { /* нижние индексы + надстрочный заряд */ };
// 3. Пробирка с осадком/газом/окраской (SVG-анимация)
const testTube = ({fill, precipitate, gas, color, label}) => { /* svg */ };
// 4. Треугольник n–m–M (звёздный виджет §6): кликаешь искомое → формула + калькулятор
const moleTriangle = (mount, {solveFor}) => { /* n=m/M, m=n·M, M=m/n */ };
// 5. Балансировщик уравнений (§8): подбор коэффициентов, проверка баланса атомов
const equationBalancer = (mount, {skeleton}) => { /* матрица атомов, подсветка дисбаланса */ };
// 6. Калькулятор степени окисления (§42): формула → с.о. каждого элемента (правила)
const oxStateCalc = (mount, {formula}) => { /* разбор, правила H+1/O−2/Σ=0 */ };
// 7. Балансировщик ОВР методом e-баланса (§44): полуреакции, НОК, коэффициенты
const redoxBalancer = (mount, {skeleton}) => { /* окислитель/восстановитель, Δe⁻ */ };
// 8. Орбитальная диаграмма (§33): orbitalDiagram('1s2 2s2 2p4') → клетки + ↑↓
const orbitalDiagram = (config) => { /* svg клетки, принцип Хунда/Паули */ };
// 9. Интерактивная таблица растворимости (§19,20,48): подсветка пары катион×анион (Р/Н/М/—)
const solubilityTable = (mount, {highlight}) => { /* из форзаца книги */ };
// 10. Интерактивный ряд активности металлов (§14,20): клик → предсказание реакции
const activitySeries = (mount, opts) => { /* K Ca Na Mg Al Zn Fe ... Au + (H₂) */ };
// 11. Мини-ПСХЭ с подсветкой (§1,26,34): элемент/группа/период/семейство
const miniPeriodic = (mount, {highlight, onClick}) => { /* интерактивная сетка */ };
// 12. Индикатор + шкала pH (§13,14,16,17): лакмус/фенолфталеин/метилоранж
const indicatorScale = (mount, {ph, indicator}) => { /* цвет полоски */ };
// 13. Анимация растворения/гидратации (§47): частицы воды окружают ионы/молекулы
const dissociationAnim = (mount, {substance}) => { /* canvas/SVG-частицы */ };
// 14. Классификатор-DnD (§10,13,16,19,46): drag формулы → класс/тип; проверка
const classifier = (mount, {items, buckets}) => { /* оксиды/кислоты/основания/соли/смеси */ };
// 15. Генетическая карта-граф (§22): Me/неMe → оксид → гидроксид → соль, клик-переходы
const geneticMap = (mount, opts) => { /* SVG-граф классов + рендер реакции перехода */ };
C. Правила рендера химии (обязательны с §1)
- Формулы веществ — нижние индексы для атомов (
H_2O,CaCO_3), верхние для зарядов ионов (SO_4^{2-}) и степеней окисления (\overset{+2}{Ca}); единый рендер черезchemEq/ionLabel, не «сырой» текст. - Уравнения реакций — всегда сбалансированы; стрелки
=/→(необратимая),⇌(обратимая),↑(газ),↓(осадок), условия над стрелкой (t, кат., эл.ток). - Состояние/признак — для качественных реакций показывать цвет осадка, пузырьки газа,
изменение окраски индикатора (через
testTube/indicatorScale). - Количественные расчёты — каждый расчётный § даёт калькулятор/тренажёр с пошаговым решением (дано → формула → подстановка → ответ с единицами), не только готовый ответ.
- Молекулярные модели — структурная формула + 3D (biochem-core) для каждой изучаемой молекулы (§37–38, §41); для типов решёток — 3D-ячейки.
- Цвета — химически достоверные: осадки (
Cu(OH)_2голубой,Fe(OH)_3бурый,Zn(OH)_2белый); индикаторы (фенолфталеин в щёлочи малиновый, лакмус в кислоте красный, метилоранж в кислоте розовый). - Безопасность — где уместно (растворение кислот/щелочей, разбавление) — заметка-«скрепка».
- KaTeX-эскейпы — в JS-шаблонах двойной backslash (
\\to,\\downarrow,\\rightleftharpoons). - Drag/слайдеры —
window-listeners +{passive:false}+ state ВЫШЕredraw()(стандарт геометрии),touch-action:noneна draggable SVG/canvas, безsetPointerCapture. - Без эмоджи — только inline SVG
.ic/.ico(правило проекта feedback_no_emoji).
D. Типы интерактивов по темам 8 класса
| Тип темы | Интерактив |
|---|---|
| Количество вещества (§3–7, 9) | moleTriangle, калькуляторы M/V_m/N, sim stoichiometry |
| Химические реакции (§8) | equationBalancer, классификатор типов |
| Классы соединений (§10–21) | classifier, матрицы реакций, indicatorScale, solubilityTable, activitySeries |
| Генетическая связь (§22) | geneticMap |
| Периодический закон / ПСХЭ (§24–28, 34) | miniPeriodic, sim periodic, графики трендов |
| Строение атома (§29–33) | sim bohratom, sim orbitals, sim radioactive, orbitalDiagram |
| Химическая связь (§36–41) | slider ЭО, biochem-core 3D, ионная/металлич. решётка, 4 типа кристаллов |
| ОВР (§42–44) | oxStateCalc, redoxBalancer, визуализация переноса e^- |
| Растворы (§46–52) | dissociationAnim, график растворимости, sim solutions, калькулятор c |
| Качественные/амфотерность (§18,25) | testTube + уравнение + признак |
📦 СТРУКТУРА КАЖДОГО § (стандарт наполнения)
Теория (3–4 карточки):
theory— основное определение/понятие + наглядная SVG/модельrule— ключевая закономерность/формула (рамка)example— разобранный пример (реакция/расчёт) с пошаговым рендером- (для прикладных §)
apply— применение/значение (инфографика)
Интерактивы (4–6 на §):
- Звёздный виджет темы (из карты содержания)
- Конструктор/симулятор (slider / drag / sim из реестра)
- Калькулятор (
M,n,w,c, с.о., по уравнению) — где применимо - DnD-классификатор (классы веществ, тип связи/реакции, тип решётки)
- Тренажёр — 5 задач с inline-наглядностью (формула/уравнение/модель в условии)
- Босс § — 4 интеграционные задачи (+5 XP каждая)
Дополнительно: пополнение глоссария (термины §, [[ссылки]]), «Вопросы и задания»
из учебника (адаптированные, с проверкой), проходящий jsdom-тест страницы.
Финал главы: итоговая шпаргалка (mini-cards), карта связей (SVG-граф понятий), 7 интегрированных боссов (+10 XP), achievement «Мастер главы N» (+50 XP, confetti), кнопка перехода к следующей главе.
🚀 ПОРЯДОК РЕАЛИЗАЦИИ (по фазам)
Phase 0 — Фундамент (hub + каркасы глав)
chemistry_8_hub.html— хаб-каталог 7 глав по образцуphysics_9_hub.html: палитра amber, водяной знак «ХИМИЯ», карточки глав с прогрессом (грузится из/api/textbooks/chemistry-8/children), блок «Финал курса» (шпаргалка + боссы — наполняется в Phase 7), achievement-strip «Химик 8 класса», тема (localStoragechemistry8_theme).- 7 файлов глав
chemistry_8_intro.html+chemistry_8_ch1..ch6.html— на Phase 0 валидные каркасы-заглушки (header с водяным знаком, hero, sidebar-оглавление §, контейнер параграфов, XP/tracker-интеграция), наполнение § — в Phase 1–6. /js/chem8_svg.js(хелперы B — заглушки → реализация по фазам).- Подключить
biochem-core.js+ нужные симуляторы на страницах глав. - Миграция
041_chemistry8_hub.sql(следующий номер после040_content_access.sql): INSERT родителяchemistry-8(html_path='chemistry_8_hub.html',para_count=52,color='amber',parent_slug=NULL) + 7 детейchemistry-8-intro/-ch1..-ch6(parent_slug='chemistry-8', своиhtml_path/para_count/color/sort_order) — по образцу038_physics_9_hub.sql. Применитьnpm run migrate. - jsdom-тест-каркас: хаб строится, все 8 файлов парсятся, ссылки глав ведут на существующие slug.
Phase 1 — Вводный раздел «Количественные понятия» (§§1–9) + ПР1 — фундамент расчётов
Базовые движки: калькулятор M_r (biochem-core), moleTriangle, связка $m$–$n$–$V$–N,
equationBalancer, sim stoichiometry. Критично — эти расчёты используются во всех главах.
Phase 2 — Глава 1 «Классы неорганических соединений» (§§10–23) + Лаб.1,2 + ПР2,3
Самая объёмная. Закладываем classifier, indicatorScale, solubilityTable,
activitySeries, матрицы реакций, testTube (первые качественные/нейтрализация),
geneticMap (§22), sim titration.
Phase 3 — Глава 2 «Периодический закон и ПСХЭ» (§§24–28) + Лаб.3
miniPeriodic, sim periodic, амфотерность (Zn(OH)_2 — обе реакции + testTube),
демонстрация периодичности.
Phase 4 — Глава 3 «Строение атома» (§§29–35)
sim bohratom, sim orbitals, sim radioactive, orbitalDiagram, графики периодических
трендов, генератор «паспорта элемента».
Phase 5 — Глава 4 «Химическая связь» (§§36–41) + Лаб.4
slider ЭО → тип связи, biochem-core 3D-модели, ионная/металлическая решётки, 4 типа кристаллических решёток (3D) и связь «тип → свойства».
Phase 6 — Глава 5 «ОВР» (§§42–45) + Глава 6 «Растворы» (§§46–52) + ПР4
oxStateCalc, redoxBalancer, визуализация переноса e^-; затем dissociationAnim,
график растворимости, sim solutions, калькулятор c, ПР4.
Phase 7 — Финалы глав + общий финал учебника
Шпаргалки и карты связей по каждой главе; интегрированные боссы + achievements;
большой финал: генетическая карта классов + строение/связь, итоговый босс-квест,
ачивка «Химик 8 класса»; глоссарий собран и связан [[ссылками]].
Phase 8 — Качество и админка
Полный прогон jsdom-тестов (каждый § — builder не stub); аудит баланса уравнений и
KaTeX/chemEq-эскейпов; синхронизация с админкой (если новые sim в lab.html →
обновить ADMIN_SIMS в admin.html — feedback_sims_admin_sync); проверка доступа
по классам/ученикам (project_content_access, /api/access).
Рекомендуемый темп: внутри фазы — по 2–3 § за «волну», каждая волна = commit + проходящий jsdom-тест (правило CLAUDE.md: commit изменённых файлов + push).
🗄️ ИНТЕГРАЦИЯ С ПРОЕКТОМ
| Точка | Действие |
|---|---|
| БД каталог | chemistry-8 в textbooks отсутствует → миграция 041_chemistry8_hub.sql: INSERT родитель + 7 детей (образец — 038_physics_9_hub.sql). Каталог /api/textbooks показывает только parent_slug IS NULL; хаб тянет детей через /api/textbooks/chemistry-8/children. |
| Прогресс/XP | Автоматически: textbook-xp-widget.js (+5 XP/§), textbook-tracker.js, LS.xp. Доп. XP за боссов — по образцу phys7_ch1_widgets.js. |
| Симуляторы | Реестр frontend/js/labs/_register-all.js. Нужные химические sim уже зарегистрированы: periodic, bohratom, orbitals, radioactive, stoichiometry, titration, qualanalysis, solutions, chemsandbox. |
| Молекулы | biochem-core.js (парсинг, M, 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-диапазоны за пределы химически возможного (концентрации, температуры,
V_m). - Эмоджи — запрещены; только inline SVG
.ic. - Grep tool — запрещён; поиск только
ast-index(reference_sqlite_node и правила проекта).
✅ Обязательно
- Каждый commit → jsdom-тест 100% pass.
- Аудит баланса уравнений + KaTeX-эскейпов после каждой волны.
- Расчётный § = калькулятор/тренажёр с пошаговым решением и единицами измерения.
- Качественная реакция = уравнение (молек.+, где есть, ионное) + видимый признак.
- Цвета осадков/индикаторов — химически достоверные.
- Все builder-функции в конце финальной волны главы — НЕ stub'ы.
- Коммитить только изменённые файлы (не
git add -A), сразу push.
📊 Оценка объёма
| Раздел | § | Лаб/ПР | Ожидаемый LOC |
|---|---|---|---|
| Вводный (кол-во вещества) | 9 | ПР1 | ~7 000 (+moleTriangle, equationBalancer, stoichiometry) |
| Гл.1 Классы соединений | 14 | Лаб1,2 + ПР2,3 | ~16 000 (+classifier, solubilityTable, activitySeries, geneticMap) |
| Гл.2 ПЗ и ПСХЭ | 5 | Лаб3 | ~5 000 (+miniPeriodic, амфотерность) |
| Гл.3 Строение атома | 7 | — | ~7 000 (+orbitalDiagram, sim bohratom/orbitals/radioactive) |
| Гл.4 Химическая связь | 6 | Лаб4 | ~6 500 (+3D-модели, 4 решётки) |
| Гл.5 ОВР | 4 | — | ~4 500 (+oxStateCalc, redoxBalancer) |
| Гл.6 Растворы | 7 | ПР4 | ~7 000 (+dissociationAnim, sim solutions, калькулятор c) |
| Финалы глав + общий | — | — | ~5 000 |
/js/chem8_svg.js хелперы |
— | — | ~3 000 |
| Хаб + 7 каркасов глав (Phase 0) | — | — | ~3 000 |
| Итого | 52 | 4 лаб + 4 ПР | ~64 000 LOC |
🎬 Запуск
Phase 0: chemistry_8_hub.html (по образцу physics_9_hub.html) + 7 каркасов глав
(chemistry_8_intro.html, chemistry_8_ch1..ch6.html) + /js/chem8_svg.js (скелет) +
подключение biochem-core.js/симуляторов + миграция 041_chemistry8_hub.sql (родитель + 7 детей)
npm run migrate+ jsdom-каркас. Phase 1: Вводный раздел (§§1–9) — закладываем движки расчётов (moleTriangle,equationBalancer, simstoichiometry), от которых зависят все главы.
Дальше — последовательно по главам (Phase 2 → 6), затем финалы (Phase 7) и качество (Phase 8).