Сопоставление страниц сервиса и документации
Эта инструкция нужна для поддержки кнопки «Справка» в сервисе.
Кнопка открывает страницу документации на основе текущего URL в личном кабинете.
Где хранится маппинг
Сопоставление на стороне сервиса хранится в файле:
shopdelivery-frontend-react_v2-1/src/shared/constants/help-docs.ts
По умолчанию используется путь страницы сервиса:
- сервис:
/services/feedbacks - документация:
/services/feedbacks/
Если нужен нестандартный путь, используется явный маппинг.
Основная структура явного маппинга:
path— route в сервисе (может быть динамическим, например/:id);doc— slug страницы в документации (имя markdown-файла без.md).
Пример:
{ path: `${ROUTES.SERVICES.ROOT}${ROUTES.SERVICES.FEEDBACKS}`, doc: 'work_rev' }
Это значит:
- страница сервиса
/services/feedbacks - открывает страницу документации
docs/work_rev.md - итоговый URL документации:
/work_rev/
Когда нужен явный маппинг
Явный маппинг нужен только если:
- slug документации не совпадает с URL сервиса;
- для нескольких route нужно открыть один и тот же документ;
- есть динамические URL (
/:id,/:provider/:sessionId) и вы хотите фиксированную статью.
Как добавить новое явное сопоставление
- Создайте или обновите страницу документации в
docs/*.md. - Возьмите slug из имени файла:
docs/my_new_page.md->doc: 'my_new_page'- В сервисе добавьте правило в
HELP_ROUTE_MAPв файлеhelp-docs.ts. - Если route динамический, укажите шаблон с параметром:
- пример:
/goods/:id - Проверьте, что при открытии кнопки «Справка» на нужной странице открывается нужный документ.
Правила и рекомендации
- Для схожих страниц можно использовать один doc slug (например список и карточка).
- Порядок правил важен: более специфичные маршруты лучше держать выше.
- Если route не найден в явном маппинге, открывается документация по тому же URL-пути.
- Следите, чтобы slug в
docточно совпадал с именем файла вdocs/.
Быстрая проверка
После изменения маппинга:
- Откройте нужную страницу в сервисе.
- Нажмите кнопку «Справка».
- Убедитесь, что справа открывается корректная статья.
- Проверьте, что тема (светлая/темная) синхронизируется с темой сервиса.