fix(textbooks): извлечён общий widget CSS — phys-textbook-widgets.css

Жалоба пользователя по Физике 8 (но проблема общая для Phys 8 и Phys 9):
страницы глав используют классы .wg/.dnd-pool/.dnd-chip/.btn/.score-display/
.feedback/.actions/.sliders/.spoiler/.drop-box в HTML-разметке, но CSS-правила
для них живут только в physics_10_ch1.html. Из-за этого карточки-задания,
chip'ы drag-and-drop, кнопки и feedback-блоки в Phys 8 и Phys 9 рендерились
без стилей (как обычный текст).

- extract_widget_css.cjs: вытягивает CSS-блок (.btn..pre-.col-side) из
  physics_10_ch1.html в frontend/css/phys-textbook-widgets.css (6.4 КБ)
- Подключает <link> в 11 файлов: physics_8_ch1/ch2/ch3/hub/lab,
  physics_9_ch1..ch5, physics_9_hub
- migrate_phys9_content.js теперь инжектит ссылку на widget CSS при будущих
  миграциях (рядом с FA CDN)
This commit is contained in:
Maxim Dolgolyov
2026-05-30 09:16:24 +03:00
parent fe0bfa62c6
commit 1f17fb40dc
14 changed files with 134 additions and 1 deletions
+7 -1
View File
@@ -147,13 +147,19 @@ function migrateChapter(chN, paraNums) {
h = h.replace('</style>', inject + '</style>');
}
// FA CDN
// FA CDN + widget CSS
if (!h.includes('font-awesome')) {
h = h.replace(
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">',
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">\n<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">'
);
}
if (!h.includes('phys-textbook-widgets.css')) {
h = h.replace(
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">',
'<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.9/dist/katex.min.css">\n<link rel="stylesheet" href="/css/phys-textbook-widgets.css">'
);
}
// phys9_legacy.js (provides startAnim1, lab11*, checkNum, togglePend36, etc.)
if (!h.includes('phys9_legacy.js')) {