Горыныч
Система литературного программирования



<< Назад | Оглавление | Вперёд >>

Упакованные ссылки

Упакованной называется ссылка, которая указывает на целевой элемент не по имени, а по номеру. Вот так: @<#12345@>, здесь символ '#' является формальным признаком номера, а 12345 - номер некоего элемента.

Программа упаковывает ссылки, чтобы экономить память. Кроме того, благодаря упаковке упрощаются многие операции. Положительный эффект достигается за счёт того, что номера уникальны, в отличие от имён, а их обработка выполняется быстрее. С другой стороны, упаковка замедляет ряд операций из-за того, что выполняется трансформация ссылок и текста.

Упаковка ссылок - это замена в ссылках имён элементов на их номера. Упаковка выполняется при внесении изменений в элемент, а также при исправлении "битых" ссылок. Упаковываются только те ссылки, что указывают на реально существующие элементы.

Распаковка ссылок - это замена в ссылках номеров элементов на их имена. Распаковка выполняется при загрузке элемента в редактор, а также при удалении элемента. При распаковке неоднозначных ссылок программа квалифицирует их - указывает не только имя, но и путь к элементу. Это сохраняет однозначность. Также из-за распаковки возникает следующий эффект. Если ввести в ссылку номер элемента, то при следующей загрузке текста в редактор номер в ссылке будет заменён на имя элемента. Это сделано намеренно, потому что номера, в отличие от имён, нечитабельны и плохо запоминаются. Поэтому программа выводит в ссылках имена, а не номера.

Операции упаковки и распаковки являются "прозрачными". В редакторе увидеть упакованную ссылку возможно только в двух случаях - если в ссылку был введён номер несуществующего элемента или если произошёл какой-то сбой.

<< Назад | Оглавление | Вперёд >>