e76485cadc
Полная инфраструктура: 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 (Физика как наука + Тело/явление/величина).
61 lines
4.6 KiB
SQL
61 lines
4.6 KiB
SQL
-- Physics 7 hub migration (self-sufficient).
|
|
-- Creates physics-7 as a full 5-chapter + lab textbook in the style of physics-8/9/10:
|
|
-- physics-7 (hub, html_path = physics_7_hub.html)
|
|
-- physics-7-ch1 (Физические методы познания природы, §§1–7) → physics_7_ch1.html
|
|
-- physics-7-ch2 (Строение вещества, §§8–13) → physics_7_ch2.html
|
|
-- physics-7-ch3 (Движение и силы, §§14–27) → physics_7_ch3.html
|
|
-- physics-7-ch4 (Давление, §§28–35) → physics_7_ch4.html
|
|
-- physics-7-ch5 (Работа. Мощность. Энергия, §§36–42) → physics_7_ch5.html
|
|
-- physics-7-lab (Лабораторный практикум, 6 ЛР) → physics_7_lab.html
|
|
--
|
|
-- This migration is the single source of truth for physics-7 textbook structure.
|
|
-- It is idempotent and does not depend on any prior physics-7 migration.
|
|
|
|
-- 1. Ensure the parent physics-7 hub row exists.
|
|
INSERT OR IGNORE INTO textbooks
|
|
(slug, subject, grade, title, author, description, html_path, para_count, color, sort_order, is_active)
|
|
VALUES
|
|
('physics-7', 'physics', 7, 'Физика — 7 класс',
|
|
'',
|
|
'Первый курс физики: методы познания, строение вещества, движение и силы, давление, работа/мощность/энергия. 42 параграфа в 5 главах + 6 виртуальных лабораторных работ.',
|
|
'physics_7_hub.html', 48, 'sky', 3, 1);
|
|
|
|
-- 2. Update the parent physics-7 hub row (idempotent on re-runs).
|
|
UPDATE textbooks
|
|
SET
|
|
author = '',
|
|
para_count = 48,
|
|
html_path = 'physics_7_hub.html',
|
|
description = 'Первый курс физики: методы познания, строение вещества, движение и силы, давление, работа/мощность/энергия. 42 параграфа в 5 главах + 6 виртуальных лабораторных работ.',
|
|
color = 'sky'
|
|
WHERE slug = 'physics-7';
|
|
|
|
-- 3. Insert the 6 children (5 chapters + lab).
|
|
INSERT INTO textbooks
|
|
(slug, subject, grade, title, author, description, html_path, para_count, color, sort_order, is_active, parent_slug)
|
|
VALUES
|
|
('physics-7-ch1', 'physics', 7, 'Физика 7 · Физические методы познания природы',
|
|
'',
|
|
'§§1–7: физика как наука, физическое тело и явление, методы исследования, измерения, СИ, цена деления, погрешность.',
|
|
'physics_7_ch1.html', 7, 'sky', 1, 1, 'physics-7'),
|
|
('physics-7-ch2', 'physics', 7, 'Физика 7 · Строение вещества',
|
|
'',
|
|
'§§8–13: дискретное строение, тепловое движение, взаимодействие частиц, три состояния, тепловое расширение, термометр.',
|
|
'physics_7_ch2.html', 6, 'indigo', 2, 1, 'physics-7'),
|
|
('physics-7-ch3', 'physics', 7, 'Физика 7 · Движение и силы',
|
|
'',
|
|
'§§14–27: механическое движение, равномерное и неравномерное, плотность, силы тяжести/упругости/трения, динамометр, равнодействующая.',
|
|
'physics_7_ch3.html', 14, 'red', 3, 1, 'physics-7'),
|
|
('physics-7-ch4', 'physics', 7, 'Физика 7 · Давление',
|
|
'',
|
|
'§§28–35: давление, закон Паскаля, гидравлический пресс, гидростатика, сообщающиеся сосуды, атмосферное давление, барометры.',
|
|
'physics_7_ch4.html', 8, 'amber', 4, 1, 'physics-7'),
|
|
('physics-7-ch5', 'physics', 7, 'Физика 7 · Работа. Мощность. Энергия',
|
|
'',
|
|
'§§36–42: механическая работа, КПД, мощность, кинетическая и потенциальная энергия, закон сохранения механической энергии.',
|
|
'physics_7_ch5.html', 7, 'emerald', 5, 1, 'physics-7'),
|
|
('physics-7-lab', 'physics', 7, 'Физика 7 · Лабораторный практикум',
|
|
'',
|
|
'6 виртуальных лабораторных работ: цена деления, измерение длины, объёма, неравномерное движение, плотность, сила трения.',
|
|
'physics_7_lab.html', 6, 'cyan', 6, 1, 'physics-7');
|