-
Notifications
You must be signed in to change notification settings - Fork 74
Description
Не работают якорные ссылки на внешнюю страницу.
Ожидаемое поведение - якорные ссылки работают в стандартном для markdown формате, как в Gitlab - переадресуют на нужный раздел внешней страницы через решетку. При этом внешняя страница является относительной ссылкой на md-файл. А решетка ссылается на заголовок раздела или тег якоря anchor.
Аналогично должны работать якорные ссылки на DocHub-документ.
Пример 1 - относительная ссылка на markdown-файл + якорь:
[action flow](verify-backups-action-flow.md#processing)
Формируется неправильная http-ссылка: [http://localhost:8080/entities/docs/verify-backups-action-flow.md-](http://10.92.41.232:8080/entities/docs/verify-backups-action-flow.md%60-) ищет файл в корне, а не относительно того пути, откуда была дана, поэтому файл не найден, и выдается ошибка:
Неизвестный тип документа [unknown]
Path: /entities/docs/presentations/verify-backups-action-flow.md Params: {}
Profile: {
"$base": "/entities/docs/presentations/verify-backups-action-flow.md"}
Без якоря ссылка формируется нормально: http://localhost:3030/entities/docs/blank?dh-doc-id=ad.adbm.binary_backup.backup_concept&redirect=backend%3A%2F%2F81d89219098253dba512f4989163b38c%2Fcomponents%2Fcore%2Factions%2Fbinary%2Fbackup%2Fverify-backups-action-flow.md
Пример 2 - относительная ссылка на .md с возвратами + якорь:
[Start action flow](../../common/common-actions.md#prepare-action-flow)
приводит к нерабочей http-ссылке - http://10.92.41.232:8080/common/common-actions.md#prepare-action-flow
Если убрать якорь (решетку и все, что после), то ссылка формируется нормально: http://localhost:3030/entities/docs/blank?dh-doc-id=ad.adbm.binary_backup.backup_concept&redirect=backend%3A%2F%2F81d89219098253dba512f4989163b38c%2Fcomponents%2Fcore%2Factions%2Fbinary%2Fbackup%2F%25E2%2586%2590%2F%25E2%2586%2590%2Fcommon%2Fcommon-actions.md
Пример 3 - якорь + id DocHub-документа
Ссылка на id документа - - в v3.13.2 уже такая ссылка не работает, ни с якорем, ни без, формат неактуален.[Test](blank?dh-doc-id=test.doc#test-anchor) - якорь отрезается, но ссылка, в отличие от предыдудщих примеров, ведет на нужную страницу, только без учета якоря
Пример 4 - якорная ссылка на DocHub-документ
[test](/entities/docs/blank?dh-doc-id=my_doc#anchor) - такая ссылка изначально отображается правильно (если навести курсор, URI корректный - http://localhost:8080/entities/docs/blank?dh-doc-id=my_doc#anchor), но при клике якорь отрезается и ссылка ведет на начало указанной страницы.
В консоли видно, что ссылка парсится как id=my_doc&path=/docs/my_doc, то есть без якоря.
В коде такая ссылка формируется здесь https://github.com/RabotaRu/DocHub/blob/a3b6de6a1b4754a1bda3a4751d7dc183aa297ff2/src/frontend/components/Docs/DocMixin.js#L169
Пример 5 - якорная ссылка на DocHub-документ, другой формат
[test](@document/my_doc#anchor) - не работает ни с якорем ни без в v3.13.2.
Пример 6 - Ссылка на якорь-ключевое слово
Якоря в формате , проставленные на целевой странице тоже не работают, если ссылка на них вида [test](file.md#test) или [test](/entities/docs/blank?dh-doc-id=my_doc#test) - дана с внешней страницы.
Пример 7 - ссылка на метод Swagger
Нет возможности дать ссылку на определенный метод OpenApi/Swagger:
components:
schemas:
User:
$ref: './external-schemas/user.yaml#/User' # Относительный путь
Внутри одной страницы якорные ссылки работают.