[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