[docs] Re: chunker.xsl logic
Vitaly Ostanin
vyt на vzljot.ru
Пн Сен 1 11:36:27 MSD 2003
On Tue, 26 Aug 2003 19:31:40 +0400
Oleg A.Paraschenko <olpa на xmlhack.ru> wrote:
> Привет!
>
> On Tue, 26 Aug 2003 18:59:59 +0400
> Vitaly Ostanin <vyt на vzljot.ru> wrote:
>
> ...
> > > А что хочется?
> >
> > Сделать chunked вывод для website - это тот же docbook с
> > врапперными тегами для страниц.
>
> А родной /usr/share/xml/website/xsl/chunk-website.xsl не
> подходит?
Нет, это просто другой способ сборки (альтернатива Makefiles), не
тот chunk, который docbook-xsl/html/chunk.xsl, несколько
html-страниц из одной xml-страницы он не делает.
> > > > возник вопрос: а может, кто-то уже разобрался с логикой
> > > > html/chunk.xsl ?
> > >
> > > Недавно пробовал. Особо разбираться не стал, ибо понял,
> > > что вклиниться туда без изменения chunk.xsl почти
> > > невозможно.
> > >
> > > Примерно так:
> >
> > > * создаётся дерево кусков (на это повлиять можно)
> >
> > На каком этапе?
>
> Ещё перед началом XSLT преобразования:
>
> <xsl:variable name="chunk.hierarchy">
> ...
> <xsl:apply-templates select="/*" mode="find.chunks"/>
> ...
> </xsl:variable>
Ага... Это не совсем то, что нужно. Эта переменная значима только
при использовании chunk.fast, который по умолчанию выключен.
Уже понятно, что тот факт, что элемент является chunk'ом,
определяется шаблоном "chunk". А вот логику срабатывания на
элементе в моей каше импортов website/docbook, похоже, без xsldbg
не понять...
> > На чём срабатывает создание дерева кусков?
> >
> > > * находится поддерево, которое будет обрабатываться (обычно
> > > весь документ)* для "компонентных" элементов (book,
> > > chapter, etc) дерево кусков игнорируется: они всегда
> > > создают новые куски* для каждого куска:- обрабатывается
> > > содержимое- добавляются навигационные ссылки
> > > - создаются toc (увы, только из известных элементов),
> > > список фигур и другие списки- возможно, ещё что-то
> > > - создаётся файл, в который выводятся результаты
> >
> > Спасибо, но мне нужно с самого начала.
> >
> > То есть существует "драйвер" chunked вывода - html/chunk.xsl
> >
> > Он накладывается на XML документ. Меня интересует, в какой
> > момент, срабатывая на чём, создаётся вывод в несколько
> > файлов.
>
> <xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
> <xsl:variable name="ischunk">
> <xsl:call-template name="chunk"/>
> </xsl:variable>
>
> ...
> a) (кусок) <xsl:call-template
> name="process-chunk-element"/>
>
> b) (не кусок) <xsl:apply-imports/>
> ...
> </xsl:template>
Ага... Похоже, что вот это именно то, что мне нужно. Спасибо!
> Chunk создаётся где-то внутри "process-chunk-element".
<skipped/>
--
Regards, Vyt
mailto: vyt на vzljot.ru
JID: vyt на vzljot.ru
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 189 байтов
Описание: отсутствует
Url : /pipermail/docs/attachments/20030901/b1bfa2dc/attachment.bin
Подробная информация о списке рассылки docs