[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>&#x41f;</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