[docs] Re: Docbook root element
Oleg A. Paraschenko
olpa на xmlhack.ru
Пн Окт 25 19:46:18 MSD 2004
Привет!
On Mon, 25 Oct 2004 15:29:00 +0400
Ildar Mulyukov <ildar at users.sourceforge.net> wrote:
...
> чувствую, что получу поддержку, что очень радует :-) Спасибо за ссылку
> на Complete Guide, там можно научиться многому полезному. Про Website
> больше речь не веду, принимая, что это - тупиковая ветвь (вернее
> совершенно неудачный предмет для того, чтобы на него ссылаться в данном
> контексте).
> По-видимому, я недопонимаю чего-то важного, поэтому задаю вопросы, на
> которые ответ: "а чего Вы хотите?"
> Попробую изложить с самого начала:
> * Во всяких материалах по DBk описано, как делать докумены, то есть
> использовать BOOK и ARTICLE, в качестве root-элементов.
> * Соответственно есть принятые DTD для таких документов. При этом
> root-элементом является <book/> или <article/>. (Это обязательно?
Нет.
> Или DTD не декларирует, какой будет root-элемент?)
true.
> * Есть потребность создать новый вид документа, который не является ни
> книгой, ни статьёй: <my-type-of-doc/>
Если Вы не хотите стать экспертом по DocBook, то Вам это не надо.
> В связи с такой потребностью возникают следующие вопросы:
> 1. Надо для такого документа написать DTD. Предположим, эта проблема
> решаема :-) Надо только почитать доки по DTD.
Нет, книшку DocBook reference. Там есть раздел с названием типа
"DocBook customization".
> 2. Для реального использования надо как-то подцепиться к DBk-ским xsl.
> Видимо, это делается простым include-ированием html/docbook.xsl?
Только не include, а import. Описано либо DocBook reference, либо
в DocBook XSLT reference.
> 3. Есть ли примеры успешной реализации поставленной задачи? Кто-нибудь
> так уже делал?
Ну, я делал. Могу попугать добавлением fakechapter и fakeappendix.
Кусочек из XSLT (полностью привести не могу) ниже, результат --
http://xmlhack.ru/books/xslt/ .
<x:import href = "&dbxsltroot;/html/chunkfast.xsl" />
...
<x:template match = "fakechapter | fakeappendix" />
<!-- :::::::
: TOC tuning
-->
<!--
: Add 'fakechapter' to TOC
-->
<x:template name = "division.toc">
<x:param name = "toc-context" select = "." />
<x:call-template name = "make.toc">
<x:with-param name = "toc-context" select = "$toc-context"/>
<x:with-param name = "nodes"
select = "chapter | fakechapter | preface | appendix | fakeappendix"
/> </x:call-template>
</x:template>
<!--
: Fakechapter presentation in TOC: as chapter, but no link
-->
<x:template match = "fakechapter | fakeappendix" mode = "toc">
<x:param name = "toc-context" select = "." />
<x:variable name = "tocentry">
<x:call-template name = "subtoc">
<x:with-param name = "toc-context" select = "$toc-context" />
</x:call-template>
</x:variable>
<x:apply-templates mode = "nolink" select = "ex:node-set($tocentry)"/>
</x:template>
<!--
: Drop link from fakechapter TOC entry
-->
<x:template match = "node() | @*" mode = "nolink">
<x:copy>
<x:apply-templates select = "node() | @*" mode = "nolink"/>
</x:copy>
</x:template>
<x:template match = "a" mode = "nolink">
<x:apply-templates select = "node()" mode = "nolink"/>
</x:template>
<!--
: Appendix is without TOC
-->
<x:template match = "appendix//section" mode = "toc">
</x:template>
...
<!-- =======
:
-->
<x:template match="fakechapter | chapter" mode="label.markup">
<x:number from = "book" count = "chapter | fakechapter"
format = "1" level = "any" />
</x:template>
<x:template match="fakechapter | chapter" mode="label.markup">
<x:number from = "book" count = "chapter | fakechapter"
format = "1" level = "any" />
</x:template>
<x:template match="fakeappendix | appendix" mode="label.markup">
<x:text>П</x:text> <!-- russian letter "P" (Petr) -->
<x:number from = "book" count = "appendix | fakeappendix"
format = "1" level = "any" />
</x:template>
> Пока это всё. Посмотрим, что принесёт грядущий день.
> Спасибо. С уважением, Ильдар.
>
> --
> Ildar Mulyukov,
> free SW designer/programmer
> ================================================
> email: ildar at users.sourceforge.net
> projects: http://os-development.sourceforge.net/
> home: http://tuganger.narod.ru/
> ALT Linux Sisyphus
> ================================================
>
>
--
Oleg Paraschenko olpa@ http://xmlhack.ru/ XML news in Russian
Подробная информация о списке рассылки docs