Якорь задаёт имя положению на странице, на которое можно затем точно сослаться —
в противовес обычной ссылке без якоря, которая откроет страницу в её начале. Регистр имени якоря как при ссылках на него, так и при задании значения не имеет — имя якоря всегда преобразуется к нижнему регистру.
См. также Адресация в ссылках.
¶
Якоря могут быть блочными — для этого конструкция, напоминающая якорную ссылку, помещается на отдельной строке, как здесь: ¶
((#блочный_якорь)) А это - ссылка на ((#блочный_якорь блочный якорь)). |
¶
А это — ссылка на блочный якорь. ¶ |
Блочные якоря могут содержать пробелы, что особенно удобно при ссылке без названия: ¶
((#блочный_якорь)) А это - ссылка на ((#блочный якорь==)). |
¶
А это — ссылка на блочный якорь. ¶ |
Кроме этого есть возможность создания строчных якорей, если включена настройка UWikiSettings->$inlineAnchors (по-умолчанию включена). ¶
Это режим по умолчанию; задаётся настройкой UWikiSettings->$inlineAnchors. Якоря задаются как будто это ссылка без названия на якорь в текущем документе: ¶
Якорь можно расположить прямо [((#здесь_якорь))] внутри строки. |
Таким образом имя якоря не может иметь пробелов — пробел считается разделителем адреса ссылки и её названия. Однако можно использовать пустое название: ¶
* ((#здесь_якорь==)). |
Замена окончания))= работает так, что если окончание указано, то название можно опустить, даже несмотря на то, что имя якоря как будто стоит само по себе: ¶
* ссылка на один из ((#якор+ь))ей. |
|
Кстати, в зависимости от темы ссылки на якоря на текущей странице, которые не существуют, могут выделяться другие цветом — например, как эта. ¶
Когда насройка UWikiSettings->$inlineAnchors отключена (по умолчанию она включена, поэтому действует режим строчных якорей), обработка ссылок изменяется так: ¶
Движок автоматически создаёт якоря для элементов, указанных в настройке UWikiSettings->$anchorize — по умолчанию это заголовки и абзацы. Имя якорей заголовов генерируется из содержимого этого заголовка, а имена якорей для других элементов — из их порядкового номера, считая от заголовка. ¶
Якорь для заголовка составляется из «слов» — словом здесь считается любая буква, цифра, точка, подчёркивание или дефис. Алгоритм таков: ¶
Якоря для прочих элементов генерируются по их порядку после заголовка. Например, если включена автогенерация якорей для заголовков, абзацев и списков: ¶
== Заглавие == Абзац 1. === Секция == Абзац 2. 1. Пункт 1. 2. Пункт 2. Абзац 3. |
Абзац 1. ¶ Секция¶Абзац 2. ¶ Абзац 3. ¶ |
Чтобы увидеть якорь просто наведите мышку на заголовок, абзац или строку. ¶
См. также настройку UWikiSettings->$autoAnchorContractions, которая задаёт правила сокращения имён автосгенерированных якорей, а также позволяет отключить прибавление префикса определённого элемента к имени якоря (в примере выше якоря для абзацев не имеют префиксов, а якоря списков начинаются с «wacko_listitem_»). ¶
Для улучшения качества генерируемых якорей есть ещё механизм перегенерации якорей для заголовков при обнаружении заголовка с похожим содержимым. Например, у нас есть 2 заголовка «Глава первая» и «Глава вторая». По алгоритму выше им якоря были бы такими: ¶
Такие имена не слишком наглядны — в чём тогда разница между просто «главой» и «главой два»? Если происходит такая коллизия, то первоначальный якорь перегенерируется (тем не менее, не освобождая ранее занятое имя, чтобы оно больше не могло использоваться другими). Выходит: ¶
А если бы у нас была ещё одна «Глава вторая»: ¶
Более жизненный пример, взятый из исходников документации нашей UverseWiki: ¶
Больше информации по теме — UWikiSettings->$anchorize. ¶