feat(catalog): авто-mark-as-read + Физика 8 как полноценный хаб
A. textbook-tracker.js: первый клик по .para-pill теперь автоматически
помечает параграф как прочитанный. «Прочитано» = «открыто». Сразу
даёт осмысленный счётчик для chemistry-9 и physics-9 в каталоге.
Slug fallback: physics8_* → physics-8-* (корректный слаг).
B. Физика 8 — миграция 015:
- 3 children: physics-8-thermal / electro / optics с parent_slug
- parent физики-8 обновлён: para_count=40, описание трёх разделов
- sub-файлы получили textbook-tracker.js + правильный слаг
- physics_8.html переписана в стиле algebra_8_hub: 3 цветные
карточки, агрегированный прогресс, ачивка «Эксперт физики 8»
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,9 @@
|
||||
if (m) return m[1];
|
||||
// Fallback for direct file access during dev
|
||||
const fname = location.pathname.split('/').pop().replace(/\.html$/, '');
|
||||
return fname.replace(/_/g, '-');
|
||||
// Normalise physics8_* → physics-8-* (e.g. physics8_thermal → physics-8-thermal)
|
||||
const norm = fname.replace(/^physics8_/, 'physics-8-');
|
||||
return norm.replace(/_/g, '-');
|
||||
})();
|
||||
|
||||
const lsKey = 'textbook_progress_' + slug;
|
||||
@@ -196,6 +198,11 @@
|
||||
if (!pill) return;
|
||||
const key = pill.dataset.para;
|
||||
setLastPara(key);
|
||||
// Auto-mark-as-read: первый клик по пилюле = открыл параграф = считается прочитанным
|
||||
// (мягкая семантика — соответствует реальному поведению учеников)
|
||||
if (!localState.read.includes(key)) {
|
||||
markRead(key);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user