[docs] Re: on olinking
Vitaly Ostanin
vyt на vzljot.ru
Пн Ноя 17 11:27:42 MSK 2003
On Mon, 17 Nov 2003 00:00:36 +0300
"Oleg A. Paraschenko" <olpa на xmlhack.ru> wrote:
> Всем привет,
>
> предлагаю обсудить проблемы, связанные с olink-ссылками.
Я пока не вижу с ними проблем :)
> Элемент olink позволяет ссылаться на другой документ с
> помощью ID
> другого документа и ID элемента в нём. Стили xsl-docbook
> разрешают(resolve) olink-ссылки с помощью базы ссылок.
>
> Дополнительные сведения на английском:
>
> http://www.sagehill.net/xml/docbookxsl/Olinking.html
> http://www.sagehill.net/OlinkExtended.html
>
> Нынешняя реализация в alt-docs примерно такая:
Это устаревшее описание.
http://www.altlinux.ru/pipermail/docs/2003-February/001964.html
<skipped/>
> Далее снова идут мои комментарии.
>
> В общем, всё правильно, но "всё так запутано", ибо в описании
> смешано генерация базы ссылок и использование базы ссылок.
>
>
> --
>
> Проблема: "компонентность базы ссылок"
>
> База ссылок состоит из главного файла и модулей. Каждый
> модуль -- это
> список пар (ID, заголовок), полученный некоего документа.
>
> Для того, чтобы olink-ссылки работали, в базу ссылок должны
> входить все
> модули, соответствующие документам, на которые ведёт ссылка.
Нет, так как ссылка должна указывать на объединяющий документ и
id внутри него. То есть, если документ intro из admin хочет
сослаться на id="admin.docs", то в качестве модуля должен быть
указан admin. В общем случае модулей будет - один, включающий все
корневые разделы, и по одному на каждый раздел:
docs
alt
devel
...
> Значит, для создания полной базы ссылок, требуется создать
> "target.db"
> для всех документов, на которые есть ссылки. Это решаемо, но
> уже сейчас"всё так запутано", а будет ещё больше.
Не будет.
> --
>
> Проблема: "миграция targetdoc"
Этой проблемы нет, если придерживаться написанного выше.
<skipped/>
> --
>
> Проблема: "разветвление функциональности"
>
> Обработка документов идёт по-разному в зависимости от того,
> используются
> или нет olink-ссылки. Соответственно, в make-файлы надо
> прописывать либо"OLINKING := no" или "OLINKING := yes".
>
> Почти всюду используется "OLINKING := no". Но может случиться
> так, что
> olink-ссылки появятся в документе неожиданно, например, через
> включаемый файл. Тогда указание в make-файле будет не совпадать
> с реальностью.
Да, это надо делать более автоматически.
> ==
>
> Решение?
>
> Предлагаю такой подход к обработке olink-ссылок:
>
> * на этапе тюнинга, для каждой olink-ссылки:
> если targetptr указывает на id, существующий в самом
> документе,
> то olink-ссылка превращается в обычную xref-ссылку
> (для реальных книг, думаю, должно быть в 99.9% случаев);
Зачем?
> * базу данных ссылок вести вручную (да, именно вручную, никакой
> автоматики). Учитывая, что межбуквенных ссылок должно быть
> мало, это не должно быть большой проблемой.
Это была бы большая проблема.
> Достоинства:
>
> * такая схема работает;
> * проста в понимании;
> * тривиальна в реализации.
>
>
> Ваши мнения?
Честно говоря, я не понял, зачем это нужно. В текущем варианте
плохо только то, что использование olink нужно указывать явно -
это исправляется тривиальным стилем по результатам xinclude.
Чтобы менять семантику olink, нужны веские причины.
<skipped/>
--
Regards, Vyt
mailto: vyt на vzljot.ru
JID: vyt на vzljot.ru
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : /pipermail/docs/attachments/20031117/7acb9da9/attachment.bin
Подробная информация о списке рассылки docs