Content: match imported chapters/sections/articles by title; slug without number

This commit is contained in:
2026-09-22 17:53:59 +03:00
parent 631a927787
commit e6e11dd32c
3 changed files with 33 additions and 12 deletions

View File

@@ -107,7 +107,13 @@ printf("Ответ: 42\n");
## Импорт: что происходит с материалами
* Главы, разделы и статьи из архива **обновляются** (совпадение по главе + разделу + slug статьи).
* Главы, разделы и статьи из архива **обновляются**. Совпадение ищется **по названию**
(глава — по названию главы, раздел — по названию раздела внутри главы, статья — по названию
внутри раздела); если по названию не нашли, для совместимости проверяется slug. Поэтому один
и тот же материал, созданный вручную и загруженный из архива, не дублируется.
* Номера в именах каталогов архива (`02-Матрицы`, `01-Двумерные массивы`) задают только
**порядок** (позицию). В адрес страницы они не попадают: slug формируется из названия, как и
при ручном создании (`Матрицы` → `matricy`, `Функции` → `funkcii`).
* Режим **синхронизации** (галка в форме импорта) дополнительно **удаляет** разделы и статьи
главы, которых нет в архиве — архив считается источником истины («удалено устаревших: N»).
* Без галки импорт работает в режиме **merge**: только добавляет и обновляет то, что есть