#!/usr/bin/env node 'use strict'; /* Генератор stub-файлов для Физики 11 (W0). * Запуск: node backend/scripts/gen_phys11_stubs.js */ const fs = require('fs'); const path = require('path'); const OUT = path.join(__dirname, '..', '..', 'frontend', 'textbooks'); const CHAPTERS = [ { n:1, slug:'physics-11-ch1', name:'Механические колебания и волны', paraRange:'§1–§6', wm:'∿', themeName:'cyan', gradient:['#155e75','#0891b2','#a5f3fc'], pri:'#0891b2', pri2:'#0e7490', priSoft:'#cffafe', desc:'Колебательное движение, гармонические колебания, маятники, превращения энергии, резонанс, продольные и поперечные волны, звук.', paras:[ {n:1, title:'Колебательное движение. Гармонические колебания', sub:'$T = \\Delta t / N$, $\\nu = 1/T$, $\\omega = 2\\pi/T$, $x = A\\cos(\\omega t + \\varphi_0)$'}, {n:2, title:'Пружинный и математический маятники', sub:'$T_{пр} = 2\\pi\\sqrt{m/k}$, $T_{мат} = 2\\pi\\sqrt{l/g}$'}, {n:3, title:'Превращения энергии при гарм. колебаниях', sub:'$W_{мех} = kA^2/2 = m\\omega^2 A^2/2$'}, {n:4, title:'Свободные и вынужденные колебания. Резонанс', sub:'Затухание, диссипация, $\\omega_{рез} \\approx \\omega_0$'}, {n:5, title:'Распространение колебаний в упругой среде. Продольные и поперечные волны', sub:'$\\lambda = vT$'}, {n:6, title:'Звуковые волны', sub:'16 Гц – 20 кГц, $v_{зв}^{возд} \\approx 340$ м/с'} ] }, { n:2, slug:'physics-11-ch2', name:'Электромагнитные колебания и волны', paraRange:'§7–§13', wm:'⚡', themeName:'violet', gradient:['#5b21b6','#7c3aed','#c4b5fd'], pri:'#7c3aed', pri2:'#5b21b6', priSoft:'#ede9fe', desc:'Колебательный контур, формула Томсона, переменный ток, трансформатор, передача электроэнергии, ЭМ волны.', paras:[ {n:7, title:'Колебательный контур. Свободные ЭМ колебания. Формула Томсона', sub:'$T = 2\\pi\\sqrt{LC}$'}, {n:8, title:'Вынужденные ЭМ колебания. Переменный ток', sub:'$i = I_0\\sin(\\omega t)$, $I = I_0/\\sqrt{2}$'}, {n:9, title:'Преобразование переменного тока. Трансформатор', sub:'$k = N_1/N_2 = U_1/U_2$'}, {n:10, title:'Производство, передача и потребление электроэнергии', sub:'ГЭС, ТЭС, АЭС; потери $P = I^2 R$'}, {n:11, title:'Экологические проблемы производства и передачи электроэнергии', sub:'ВЭС, СЭС, гео- и приливные'}, {n:12, title:'ЭМ волны. Шкала ЭМ волн', sub:'$c = 3 \\cdot 10^8$ м/с'}, {n:13, title:'Действие ЭМ излучения на живые организмы', sub:'Ионизирующее vs неионизирующее'} ] }, { n:3, slug:'physics-11-ch3', name:'Оптика', paraRange:'§14–§23', wm:'◇', themeName:'amber', gradient:['#b45309','#d97706','#fcd34d'], pri:'#d97706', pri2:'#b45309', priSoft:'#fef3c7', desc:'Электромагнитная природа света, интерференция, дифракция, отражение, зеркала, преломление, тонкая линза, оптические приборы.', paras:[ {n:14, title:'ЭМ природа света. Скорость света', sub:'Опыты Рёмера, Майкельсона'}, {n:15, title:'Интерференция света', sub:'$\\Delta = k\\lambda$ (max), $\\Delta = (2k+1)\\lambda/2$ (min)'}, {n:16, title:'Принцип Гюйгенса – Френеля. Дифракция. Дифракционная решётка', sub:'$d\\sin\\varphi = k\\lambda$'}, {n:17, title:'Прямолинейное распространение и отражение света. Зеркала', sub:'$\\angle_{пад} = \\angle_{отр}$'}, {n:18, title:'Сферические зеркала. Построение изображений', sub:'$\\frac{1}{F} = \\frac{1}{d} + \\frac{1}{f}$'}, {n:19, title:'Закон преломления света. Полное отражение', sub:'$n_1\\sin\\alpha = n_2\\sin\\beta$, $\\sin\\alpha_{пр} = 1/n$'}, {n:20, title:'Прохождение света через оптические элементы', sub:'Призмы, оптоволокно'}, {n:21, title:'Формула тонкой линзы', sub:'$D = 1/F$, $\\Gamma = f/d$'}, {n:22, title:'Оптические приборы для действительных изображений', sub:'Фотоаппарат, проектор'}, {n:23, title:'Оптические приборы для увеличения угла зрения', sub:'Лупа, микроскоп, телескоп'} ] }, { n:4, slug:'physics-11-ch4', name:'Основы СТО', paraRange:'§24–§26', wm:'c', themeName:'blue', gradient:['#1e3a8a','#2563eb','#93c5fd'], pri:'#2563eb', pri2:'#1d4ed8', priSoft:'#dbeafe', desc:'Принцип относительности Галилея, постулаты Эйнштейна, преобразования Лоренца, релятивистская динамика, E=mc².', paras:[ {n:24, title:'Принцип относ. Галилея и ЭМ явления. Эксп. предпосылки СТО', sub:'Опыт Майкельсона – Морли'}, {n:25, title:'Постулаты специальной теории относительности', sub:'$\\Delta t = \\gamma\\Delta t_0$, $l = l_0/\\gamma$'}, {n:26, title:'Элементы релятивистской динамики. Взаимосвязь массы и энергии', sub:'$E_0 = mc^2$, $E^2 = (mc^2)^2 + (pc)^2$'} ] }, { n:5, slug:'physics-11-ch5', name:'Фотоны. Действия света', paraRange:'§27–§29', wm:'γ', themeName:'pink', gradient:['#831843','#db2777','#fbcfe8'], pri:'#db2777', pri2:'#9d174d', priSoft:'#fce7f3', desc:'Фотоэффект, квантовая гипотеза Планка, фотон, уравнение Эйнштейна, давление света, корпускулярно-волновой дуализм.', paras:[ {n:27, title:'Фотоэффект. Эксперим. законы. Квантовая гипотеза Планка', sub:'$E = h\\nu$, $h = 6{,}63 \\cdot 10^{-34}$ Дж·с'}, {n:28, title:'Фотон. Уравнение Эйнштейна для фотоэффекта', sub:'$h\\nu = A_{вых} + \\frac{mv_{max}^2}{2}$'}, {n:29, title:'Давление света. Корпускулярно-волновой дуализм', sub:'$p_{фот} = h\\nu/c$. Опыт Лебедева'} ] }, { n:6, slug:'physics-11-ch6', name:'Физика атома', paraRange:'§30–§34', wm:'⚛', themeName:'emerald', gradient:['#065f46','#10b981','#a7f3d0'], pri:'#10b981', pri2:'#047857', priSoft:'#d1fae5', desc:'Ядерная модель атома Резерфорда, квантовые постулаты Бора, спектры испускания и поглощения, лазеры.', paras:[ {n:30, title:'Сложное строение атома. Ядерная модель атома', sub:'Опыт Резерфорда, размер ядра $\\sim 10^{-15}$ м'}, {n:31, title:'Квантовые постулаты Бора', sub:'$E_n = -E_1/n^2 = -13{,}6/n^2$ эВ'}, {n:32, title:'Излучение и поглощение света атомом. Спектры', sub:'$h\\nu = E_n - E_m$, линейчатые спектры'}, {n:33, title:'Спонтанное и индуцированное излучение', sub:'Подготовка к лазерам'}, {n:34, title:'Лазеры', sub:'Инверсная населённость, когерентность'} ] }, { n:7, slug:'physics-11-ch7', name:'Ядерная физика и элементарные частицы', paraRange:'§35–§44', wm:'☢', themeName:'rose', gradient:['#7f1d1d','#dc2626','#fca5a5'], pri:'#dc2626', pri2:'#991b1b', priSoft:'#fee2e2', desc:'Протонно-нейтронная модель ядра, ядерные реакции, энергия связи, радиоактивность, ядерный реактор, термояд, элементарные частицы.', paras:[ {n:35, title:'Протонно-нейтронная модель строения ядра атома', sub:'$A = Z + N$, изотопы'}, {n:36, title:'Ядерные реакции. Законы сохранения в ядерных реакциях', sub:'Сохранение заряда, нуклонов, энергии'}, {n:37, title:'Энергия связи ядра атома', sub:'$E_{св} = \\Delta m \\cdot c^2$, $\\Delta m = Zm_p + Nm_n - m_я$'}, {n:38, title:'Радиоактивность', sub:'$\\alpha$, $\\beta$, $\\gamma$ распады'}, {n:39, title:'Закон радиоактивного распада', sub:'$N = N_0 \\cdot 2^{-t/T}$, период полураспада $T$'}, {n:40, title:'Деление тяжёлых ядер. Цепные ядерные реакции', sub:'$^{235}$U, $k$ — коэф. размножения'}, {n:41, title:'Ядерный реактор', sub:'Управляющие стержни, замедлитель'}, {n:42, title:'Реакции ядерного синтеза', sub:'Термояд, $^2$H + $^3$H $\\to ^4$He + n'}, {n:43, title:'Ионизирующее излучение. Элементы дозиметрии', sub:'Доза $D$, эквивалент $H$, зиверт'}, {n:44, title:'Элементарные частицы и их взаимодействия', sub:'Стандартная модель, 4 фундаментальных взаимодействия'} ] }, { n:8, slug:'physics-11-ch8', name:'Основы единой физической картины мира', paraRange:'§45', wm:'∞', themeName:'indigo', gradient:['#3730a3','#6366f1','#c7d2fe'], pri:'#6366f1', pri2:'#4338ca', priSoft:'#e0e7ff', desc:'Современная естественнонаучная картина мира, эволюция физических теорий, четыре фундаментальных взаимодействия.', paras:[ {n:45, title:'Современная естественнонаучная картина мира', sub:'Эволюция представлений: механика → ЭМ → квант'} ] } ]; function makeChapter(c){ /* В какой волне будет реализована эта глава (см. PLAN_FIZIKA_11.md) */ const waveOf = {1:'W1-W2', 2:'W3-W4', 3:'W5-W7', 4:'W8', 5:'W9', 6:'W10-W11', 7:'W12-W13', 8:'W14'}; const wave = waveOf[c.n] || 'W1+'; const parasHtml = c.paras.map(p => `
§ ${p.n}

${p.title}

${p.sub}

Будет добавлено в волне ${wave}
`).join('\n'); return ` Физика 11 · Глава ${c.n} · ${c.name}
К курсу физики 11

Глава ${c.n}. ${c.name}

${c.desc.split('.')[0]} · ${c.paraRange}
Глава ${c.n}

${c.name}

${c.desc} Глава содержит ${c.paras.length} параграф${c.paras.length === 1 ? '' : (c.paras.length < 5 ? 'а' : 'ов')} и финальный этап с боссами.

${parasHtml}
`; } function makeHub(){ const cards = CHAPTERS.map((c, i) => `
${c.wm}
Глава ${c.n}
${c.name}
${c.paraRange} + Финал
${c.desc}
Прогресс0%
Открыть главу
`).join('\n'); return ` Физика 11 класс — учебник
К каталогу

Физика — 11 класс

Полный курс физики 11 класса · 8 глав · 45 параграфов
Общий прогресс по курсу
Загрузка...
${cards}
`; } /* Write all 9 files */ fs.writeFileSync(path.join(OUT, 'physics_11_hub.html'), makeHub(), 'utf8'); console.log('Wrote: physics_11_hub.html'); CHAPTERS.forEach(c => { const fname = 'physics_11_ch' + c.n + '.html'; fs.writeFileSync(path.join(OUT, fname), makeChapter(c), 'utf8'); console.log('Wrote:', fname); }); console.log('Done. 9 stub files generated.');