From 66bd7ac1f40bc12843fbd4b678f1e3be3dde084a Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Sat, 30 May 2026 09:06:20 +0300 Subject: [PATCH] =?UTF-8?q?fix(textbooks):=20=D0=A4=D0=B8=D0=B7=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=209=20=E2=80=94=20STATE=20collision,=20KaTeX=20esc?= =?UTF-8?q?ape,=20=D0=B0=D0=B2=D1=82=D0=BE-init=20=D1=81=D0=B8=D0=BC=D1=83?= =?UTF-8?q?=D0=BB=D1=8F=D1=86=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Три бага из жалобы пользователя: 1) phys9_legacy.js упал с 'Identifier STATE has already been declared' — const STATE в монолите конфликтовал с const STATE в chapter inline JS. Скрипт extract_phys9_legacy.cjs теперь оборачивает извлечённый код в IIFE и явно экспортит через window 70 функций (upd*/draw*/init*/start*/lab*/ check*/toggle*/render*/show*/...) + 7 const-массивов (TASKS_PN, PUZ_PN). 2) В боковой панели формулы рендерились как 'Delta vecr' вместо Δr⃗ — мой переход на JSON.stringify в gen_phys9_ch.js добавил лишний слой escape backslash. Уменьшил \\ → \ в SIDEBAR_ROWS, TIPS_HTML, PARA_SUBS, LR_SUBS (90 строк). Цепочка теперь: source \Delta → string \Delta → JSON "\\Delta" → HTML JS \Delta → runtime \Delta → KaTeX \Delta ✓. 3) 'не работают симуляции' — функции из legacy.js были доступны, но chapter goTo(id) их не вызывал. Добавлен авто-вызов upd(), startAnim(), init(), draw() при переключении на параграф, и updLab(), drawLab() — для ЛР. --- backend/scripts/extract_phys9_legacy.cjs | 58 +++++++ backend/scripts/gen_phys9_ch.js | 198 ++++++++++++----------- frontend/js/phys9_legacy.js | 71 +++++++- frontend/textbooks/physics_9_ch1.html | 79 +++++---- frontend/textbooks/physics_9_ch2.html | 59 ++++--- frontend/textbooks/physics_9_ch3.html | 41 +++-- frontend/textbooks/physics_9_ch4.html | 51 ++++-- frontend/textbooks/physics_9_ch5.html | 49 ++++-- 8 files changed, 412 insertions(+), 194 deletions(-) create mode 100644 backend/scripts/extract_phys9_legacy.cjs diff --git a/backend/scripts/extract_phys9_legacy.cjs b/backend/scripts/extract_phys9_legacy.cjs new file mode 100644 index 0000000..c9736bc --- /dev/null +++ b/backend/scripts/extract_phys9_legacy.cjs @@ -0,0 +1,58 @@ +// Извлекает -