Files
chatballs/docs/portal-curation

Редакционный порядок центра помощи Chatballs

chatballs.json задаёт порядок опубликованных статей внутри каждого раздела и направленные связи между статьями. Карта охватывает 73 русскоязычные статьи и 172 перехода. Она не меняет тексты, категории и статусы публикации.

articles/klassy-vidzheta.yml содержит статью «Классы виджета» в штатном формате импорта статей портала. Её текст сверяется с apps/web-chat/src/widgetClasses.ts тестом widgetClassesDocumentation.test.ts:

npx vitest run docs/portal-curation/widgetClassesDocumentation.test.ts

При реализации раздела «Оформление» ссылка «Классы виджета» должна получить адрес helpArticleUrl("klassy-vidzheta") из shared/help. В текущей версии WebIntegrationPage этот раздел отключён; подключение ссылки и проверка перехода зависят от реализации раздела в T-023.

Добавление YAML в репозиторий само по себе не публикует статью. Перед применением обновлённой карты нужно импортировать YAML через библиотеку статей центра помощи в существующий раздел «Точки входа» и опубликовать ревизию. Изменения действующего портала выполняются только после согласования с владельцем. До публикации новой статьи проверка карты завершится ошибкой состава статей.

Команда apply_portal_curation сначала проверяет, что карта полностью совпадает с опубликованными статьями выбранного портала: состав, разделы, язык и ссылки. Без --apply она только показывает число записей, которые были бы изменены.

После штатной выкладки версии с миграцией 0012_article_curation:

cat chatballs.json | ssh ubuntu@SERVER \
  'cd /home/ubuntu && docker compose exec -T backend-admin \
  python /app/apps/backend/manage.py apply_portal_curation \
  --host chatballs.com.edevs.tech --file -'

После сверки результата тот же запуск с --apply сохраняет порядок и связи. Повторный запуск идемпотентен: при уже применённой карте число изменений равно нулю. Файл передаётся через stdin и не сохраняется на сервере, поскольку production-образ не содержит этот каталог документации.