Read in:
Русский

Разрешение вики-ссылок

Короткая ссылка [[Имя]] ищет цель по такому порядку: сначала та же папка, где лежит заметка со ссылкой, потом тот же язык, потом самый короткий путь от корня хранилища. Выбор всегда одинаковый, поэтому одна и та же ссылка ведёт на одну и ту же страницу.

Это важно, когда две заметки называются одинаково. На двуязычном сайте часто есть en/user/templates.md и ru/user/templates.md. Короткая ссылка [[Templates]] должна вести на язык читателя, а не прыгать в другой.

Как работает разрешение

trip2g проходит три шага и останавливается на первом совпадении:

  1. Та же папка. Побеждает заметка из той же папки, где стоит ссылка.
  2. Тот же язык. Иначе побеждает заметка на том же языке. Язык берётся из свойства lang во фронтматтере или из папки верхнего уровня (en/, ru/).
  3. Короткий путь. Иначе побеждает заметка ближе всего к корню хранилища.

Если на каком-то шаге несколько заметок равны, берётся та, чей путь идёт первым по алфавиту. Случайности нет.

Пример. Обе страницы существуют:

en/user/templates.md
ru/user/templates.md

Короткая ссылка [[Templates]] из en/user/getting-started.md ведёт на en/user/templates.md. Та же ссылка из ru/user/Начало работы.md ведёт на ru/user/templates.md. Каждая ссылка остаётся в своём языке.

Как задать точную цель

Добавьте путь, чтобы указать конкретный файл. Это отменяет три шага выше.

[[folder/Name]]
[[en/user/Name]]
[[./Name]]
  • [[folder/Name]] и [[en/user/Name]] — путь от корня хранилища.
  • [[./Name]] — путь относительно заметки со ссылкой.

Так пишут, когда специально ведут в другой язык или когда короткое имя слишком неоднозначное.

Пример. Из русской заметки вы хотите отправить читателя к английскому оригиналу:

Смотрите [[en/user/templates|английскую версию]].

Совет для многоязычных сайтов

Больше не нужно добавлять путь к каждой короткой ссылке. Тот же язык побеждает сам.

Раньше [[Templates]] была неоднозначной. И en/user/templates.md, и ru/user/templates.md лежат на одной глубине, поэтому ссылка вела на ту заметку, которую система выбрала первой. Результат мог меняться от загрузки к загрузке.

Теперь решает язык заметки со ссылкой. Короткая [[Templates]] в русской заметке ведёт на русскую страницу, в английской — на английскую. Пишите короткие ссылки и доверяйте выбор папке.

Явный путь нужен только тогда, когда вы намеренно переходите в другой язык, например [[en/user/templates]].

Старое поведение

Некоторые хранилища построены под старое правило: короткая ссылка всегда вела на самый короткий путь во всём хранилище, без учёта языка. Чтобы вернуть это поведение, задайте настройку сайта:

wikilink_resolution: global

При global trip2g пропускает шаги «та же папка» и «тот же язык» и берёт самый короткий путь от корня, как раньше. Оставьте настройку пустой (или scoped), чтобы работало разрешение с учётом языка.

Смотрите также