[docs] Re: collect_images при сборке

Vitaly Ostanin vyt на vzljot.ru
Вт Ноя 22 15:37:40 MSK 2005


Kirill Maslinsky пишет:
> Добрый день!
> 
> Я тут столкнулся с проблемой при сборке DocBook/XML в HTML -- сбор всех 
> иллюстраций и помещение их в html-дерево. Хочется решить эту проблему
> сразу правильно. 
> 
> Читал старые Makefiles из cvs/docs, обнаружил следующее: 
> 
> имеется стиль collect_images.xsl, который, насколько я могу понять: 
> 
> 1) переписывает пути к файлам иллюстраций (после XInclude всё в одном файле,
> 	пути поменялись). 
> 2) Его же можно применить, чтобы получить список иллюстраций (с переписанными 
> 	уже путями) на stdout.
> 
> В комментариях в Makefile'ах написано, что collect_images -- это хак. 

Где именно и как написано? Сейчас уже не хак.

> В том tuning.xsl, который в cvs/docs, импортируется collect_images. 
> А в том, который в alt-docs-xsl-common -- нет. 

В текущей инкарнации collect_images.xsl - самостоятельный
тюнинговый стиль, живёт он здесь:
http://vyt.vzljot.ru/dcben/browser/dcben/trunk/markup/core/collect_images.xsl
использует
http://vyt.vzljot.ru/dcben/browser/dcben/trunk/markup/core/filename.xsl
который использует
http://vyt.vzljot.ru/dcben/browser/dcben/trunk/markup/core/str.split.template.xsl

Пример использования стиля:
http://vyt.vzljot.ru/dcben/browser/dcben/trunk/build-rules/make/include.d/collect_images

После обработки документа стилем должен создаваться shell-скрипт
для копирования файлов в нужный каталог с нужными именами, а
также изменённый документ, где исправлены пути и имена картинок.

Таким образом картинки собираются в один каталог конечного
формата с исправлением дубликатов имён.

Пример создания html с использованием этого стиля и скрипта:
http://vyt.vzljot.ru/dcben/browser/dcben/trunk/build-rules/make/include.d/alt_html

> Вопрос: а как тут правильно быть? 
> - Сделать свой xsl-стиль, в котором импортировать collect_images.xsl 
>   и tuning.xsl? 

tuning.xsl должен быть распилен на отключаемую функциональность,
в текущей версии обработка картинок отключена и вынесена в
collect_images.xsl. Текущая версия tuning.xsl:
http://vyt.vzljot.ru/dcben/browser/dcben/trunk/markup/core/tuning.xsl

> - colect_images -- вообще неправильный, для решения этой задачи нужно писать 
>   другой xsl-стиль?

Не думаю :) В оригинальных стилях DocBook с недавних пор
появилась поддержка xml:base для картинок, но она не рассчитана
на сборку отдельно от исходников документов, и не умеет
исправлять дубликаты. Поэтому xml:base в collect_images.xsl
подавляется до обработки оригинальными стилями.

Других стилей для сборки картинок я не встречал.

> - xsl-стиль тут вообще не нужно писать, а решать задачу другими средствами 
>   (какими?)?

Достоверная информация о картинках доступна только из xml
документа, поэтому правильно собирать её xsl-стилем. Можно решать
эту задачу организационно с помощью соглашений о префиксах в
именах картинок и хранении их всех в оговоренном каталоге, как
это было не так давно в проекте Docs. Но это неудобно и
неприемлемо в других проектах, поэтому был написан
collect_images.xsl.

-- 
Regards, Vyt
mailto:  vyt at vzljot.ru
JID:     vyt at vzljot.ru

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : http://lists.altlinux.org/pipermail/docs/attachments/20051122/598c6bec/signature.bin


Подробная информация о списке рассылки docs