#!/usr/bin/env node 'use strict'; // Генератор stub-файлов разделов Геометрии 10. W0. // Запуск: node backend/scripts/gen_geom10_stubs.js const fs = require('fs'); const path = require('path'); const sections = [ { file:'geometry_10_r1.html', num:1, slug:'geometry-10-r1', title:'Введение в стереометрию', sub:'Пространственные фигуры · Аксиомы · Сечения', range:'§1–§3 + Финал', wm:'△', primary:'#2563eb', primaryD:'#1d4ed8', soft:'#dbeafe', dark:'#1e3a8a', paras:[ { n:1, title:'Пространственные фигуры', sub:'Призма, пирамида, цилиндр, конус, шар. Грани, рёбра, вершины.' }, { n:2, title:'Прямые и плоскости', sub:'Аксиомы стереометрии (A1–A3) и их следствия. 4 способа задания плоскости.' }, { n:3, title:'Построения сечений', sub:'Метод следов. Сечения куба, призмы, пирамиды.' } ] }, { file:'geometry_10_r2.html', num:2, slug:'geometry-10-r2', title:'Параллельность', sub:'Прямые · Прямая и плоскость · Плоскости', range:'§4–§6 + Финал', wm:'∥', primary:'#059669', primaryD:'#047857', soft:'#d1fae5', dark:'#064e3b', paras:[ { n:4, title:'Расположение прямых в пространстве', sub:'Пересекающиеся, параллельные, скрещивающиеся прямые. Угол между скрещивающимися.' }, { n:5, title:'Прямая и плоскость', sub:'Три случая. Признак параллельности прямой и плоскости.' }, { n:6, title:'Две плоскости', sub:'Пересекаются или параллельны. Признак параллельности плоскостей.' } ] }, { file:'geometry_10_r3.html', num:3, slug:'geometry-10-r3', title:'Перпендикулярность', sub:'Прямая ⊥ плоскость · Расстояния · Углы · Двугранный угол', range:'§7–§10 + Финал', wm:'⊥', primary:'#e11d48', primaryD:'#be123c', soft:'#fee2e2', dark:'#7f1d1d', paras:[ { n:7, title:'Перпендикулярность прямой и плоскости', sub:'Определение, признак перпендикулярности.' }, { n:8, title:'Расстояния', sub:'От точки до плоскости, между параллельными плоскостями, между скрещивающимися.' }, { n:9, title:'Угол между прямой и плоскостью', sub:'Наклонная и её проекция. Теорема о трёх перпендикулярах.' }, { n:10, title:'Перпендикулярность плоскостей', sub:'Двугранный угол. Признак перпендикулярности плоскостей.' } ] }, { file:'geometry_10_r4.html', num:4, slug:'geometry-10-r4', title:'Координаты и векторы', sub:'ПДСК в пространстве · Векторы · Скалярное произведение', range:'§11–§14 + Финал', wm:'→', primary:'#d97706', primaryD:'#b45309', soft:'#fef3c7', dark:'#78350f', paras:[ { n:11, title:'Координаты в пространстве', sub:'ПДСК. Точка (x; y; z). Расстояние между точками.' }, { n:12, title:'Вектор. Действия над векторами', sub:'Сложение, умножение на число, базис i, j, k. Разложение вектора.' }, { n:13, title:'Скалярное произведение', sub:'a · b = |a||b|cos α = x₁x₂ + y₁y₂ + z₁z₂. Условие перпендикулярности.' }, { n:14, title:'Применение координат и векторов', sub:'Уравнения, углы, расстояния. Векторно-координатный метод.' } ] } ]; function html(s){ const parasHtml = s.paras.map(p => `
§ ${p.n}

${p.title}

${p.sub}

Будет добавлено в следующей волне реализации
`).join('\n'); return ` Геометрия 10 · ${s.title}
К курсу геометрии 10

Раздел ${s.num}. ${s.title}

${s.sub} · ${s.range}
Раздел ${s.num}

${s.title}

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

${parasHtml}
`; } const outDir = path.join(__dirname, '..', '..', 'frontend', 'textbooks'); for (const s of sections){ const fp = path.join(outDir, s.file); fs.writeFileSync(fp, html(s), 'utf8'); console.log('Wrote:', fp); } console.log('Done.');