Maxim Dolgolyov
|
65c2e7dac1
|
feat(phys7 ch1): Phase 1 Wave 1 — §1, §2 + интеграция widgets
GEN: gen_phys7_ch.js теперь подключает <script src=phys7_chN_widgets.js> и
вызывает PHYS7_CHN_WIDGETS[id] в ensureBuilt, удаляя placeholder. Все 5 chN
регенерированы под этот hook.
WIDGETS (frontend/js/phys7_ch1_widgets.js, 402 строки, экспорт p1+p2):
- §1 «Физика — наука о природе»:
* 3 теор. карточки (что изучает / связь с науками / 6 примеров явлений)
* IV-1 СИМ: галерея 8 областей физики с hover-эффектом
* IV-2 КВИЗ: 3 вопроса о предмете физики и слове «фюзис»
* IV-3 DnD: 8 карточек → 4 науки (астро/химия/био/физика)
* IV-4 ТРН: 5 вопросов тренажёр
- §2 «Физическое тело, явление, величина»:
* 3 теор. карточки (4-понятийная таблица / как отличать / стакан-пример)
* IV-1 СИМ (главный): DnD 12 карточек → 4 корзины (тело/вещество/явление/величина),
в т.ч. KaTeX-величины (=5$ кг, =-10$ °C, =30$ км/ч)
* IV-2 КВИЗ: «найди величину/явление/вещество» (3 вопроса)
* IV-3 ТЕСТ: 5 быстрых вопросов на классификацию
* IV-4 ТРН: 4 расчётных + концептуальных вопроса
- Кнопка «Я прочитал §» (+10 XP), localStorage-фиксация, серая «Прочитано»
после первого нажатия.
ИНФРАСТРУКТУРА:
- Общие хелперы внутри файла: makeCard (theory/rule/example), wgWrap, dndPool,
wireDnd, quizQuestion, wireQuiz, readButton, wireReadBtn, renderMath с правильными
delimiters $..$ и $$..$$.
- XP: DnD +15, квиз +10, тренажёр +15, прочитал +10. Прогресс параграфа +30 при
«прочитал», +10 базово при открытии. Цвета §1+§2 единые с темой главы 1 (indigo).
- Parse-check, KaTeX-аудит ($$ только двойной backslash), smoke-test пройдены.
|
2026-05-30 10:41:27 +03:00 |
|
Maxim Dolgolyov
|
e76485cadc
|
feat(phys7): Phase 0 — фундамент учебника Физики 7
Полная инфраструктура: hub, 5 ch-скелетов, lab-скелет, миграция 039,
расширение phys.js на 11 хелперов + 2 класса симуляций для новых тем 7-го класса.
ФАЙЛЫ:
- backend/src/db/migrations/039_physics_7_hub.sql — self-sufficient миграция
(parent physics-7 + 6 children: ch1..ch5 + lab). Palette: sky/blue для hub,
глав: indigo/violet/red/amber/emerald/cyan.
- frontend/textbooks/physics_7_hub.html (862 строки) — hub с прогресс-картами
6 разделов, шпаргалкой курса в 5 mini-карточках, 10 интегрированных боссов
финала курса (через ачивку «Магистр физики 7», +150 XP), темой/lang storage
через ключи physics7_*. Sidebar-фикс на десктопе встроен.
- frontend/textbooks/physics_7_ch1..ch5.html (350-390 строк каждый) —
скелеты глав с header, paragraph selector, sidebar, прогресс/XP, goTo,
search-модалом, KaTeX с delimiters, sidebar-фиксом, cache-busting ?v=20260530.
Каждая глава имеет правильное число параграфов (7/6/14/8/7) + sec-finalN.
- frontend/textbooks/physics_7_lab.html (306 строк) — скелет лаб. практикума
на 6 ЛР с teal/cyan палитрой и ачивкой «Лаборант 7 класса» (+80 XP).
- backend/scripts/gen_phys7_ch.js / gen_phys7_lab.js — генераторы из единого
шаблона (для регенерации при правках инфраструктуры).
PHYS.JS НОВЫЕ ХЕЛПЕРЫ (всё работает, smoke-test пройден):
- forceVector(x,y,F,angle,color,label) — стрелка силы с подписью
- dynamometer(x,y,h,Fmax,F) — динамометр с пружиной и шкалой
- blockOnSurface(x,y,w,h,label,weights) — брусок со стопкой гирь
- connectedVessels(x,y,kindA,kindB,levelY) — сообщающиеся сосуды
- hydraulicPress(x,y,sSmall,sLarge,fSmall) — гидравлический пресс
- mercuryBarometer(x,y,hMm) — ртутный барометр Торричелли
- aneroidBarometer(cx,cy,r,p) — стрелочный барометр-анероид
- uManometer(x,y,w,h,deltaH) — U-образный жидкостный манометр
- rulerWithError(x,y,lenCm,mmPerDiv) — линейка со шкалой и ценой деления
- bimetal(x,y,w,h,deltaT) — биметаллическая пластина (гнётся от ΔT)
- expandingRod(x,y,l0,alpha,deltaT) — стержень с тепловым расширением
- class HillSlideSim — тележка на горке (§42, закон сохранения; графики Ek/Ep/Etot)
- class PendulumSim — математический маятник (§42, осцилляции)
Все 13 экспортированы в window.PHYS, smoke-test показал физически разумные
значения энергий. Parse-check + node --check проходят.
Уроки phys 9 учтены сразу: cache-busting на phys.js, sidebar-фикс @media
min-width:981px, delimiters для renderMathInElement.
PHASE 0 DONE. Дальше: Phase 1 Wave 1 — §§1-2 (Физика как наука + Тело/явление/величина).
|
2026-05-30 10:32:37 +03:00 |
|