Использование DocBook для написания документацииУже на протяжении многих лет XML формат DocBook стал стандартом де-факто для разработки технической документации (В большинстве Linux проектов применяется именно DocBook). Несмотря на наличие большого количества текстовых редакторов (Open Office Writer, Microsoft Word и т.д.) позволяющих комфортно создавать сложные текстовые документы с возможностью форматирования и интегрирования медиа ресурсов, практика создания документации, написания статей и книг выявляет их главный недостаток – большие затраты времени на форматирование документов. Даже использование специальных шаблонов с блокировкой ручного изменения форматов шрифтов, их размеров и жесткими правилами на использование стилей не решает проблему. Часто требуется копировать и переносить фрагменты текста между документами, что нередко сопровождается переносом элементов форматирования и смешиванием стилей между документами. Используя режим специальной вставки без форматирования в редакторе Open Office Writer или Microsoft Word данную проблему можно частично решить. Но при создании больших документов на форматирование впустую затрачивается слишком много драгоценного времени. Некоторые издательства требуют оформление рукописей именно в формате Docbook, что упрощает и удешевляет процесс допечатной подготовки. Вторая проблема это бинарный формат хранения файлов, который плохо подходит для совместной работы нескольких человек над документом. Если документ хранится в удаленном хранилище (например, CVS или SVN репозитарии), то приходится заново закачивать полную копию всего документа, если он был изменен. И если документ большого размера, то это увеличивает затраты на сетевой трафик. Одновременное изменение несколькими пользователями и слияние таких измененных документов в один весьма проблематично. Используемый в DocBook XML формат решает обе вышеописанные проблемы. К сожалению, заявленная поддержка данного формата в популярном редакторе Open Office Writer оставляет желать лучшего. Но на данный момент на рынке можно найти довольно удобные альтернативные редакторов, среди которых есть и бесплатные версии. Основные преимущества формата Docbook:
4.1. Типовые конструкции DocbookДля написания больших документов обычной практикой является создание базового индексного документа и папок с текстом и ресурсами дочерних элементов. Чаще всего разбивка дочерних документов производится на уровне глав (chapter), а разбивка на части (part) производится в основном индексном документе. Пример 1.1. Типовая структура каталогов сложного документа Docbook default.xml +-ch1 | | ch1.xml | \---images | adress_panel_1.png | . . . +-ch2 | | ch2.xml | \---images | . . . +-chN | | chN.xml | \---images | . . . +-app_a literature.xml В базовом индексном файле default.xml (имя файла произвольное) описываются общие атрибуты документа, история изменений и ссылки на дополнительные внешние файлы с контентом документа. Для небольших документов можно обойтись одним файлом. Пример 1.2. Пример базового индексного документа <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> <book lang="ru"> <title>Eclipse RCP. Файловый менеджер</title> <bookinfo lang="ru" id="bookinfo"> <author> <firstname>Сергей</firstname> <surname>Бердачук</surname> <email>berdachuk@berdaflex.com</email> </author> <date>2006.02.28</date> <revhistory> <revision> <revnumber>0.17</revnumber> <date>2006.05.21</date> <revdescription> <para>Добавлено описание создания пользовательских действий (Actions)</para> </revdescription> </revision> <revision> . . . </revision> . . . <revision> <revnumber>0.12</revnumber> <date>2006.02.30</date> </revision> </revhistory> </bookinfo> <preface lang="ru" id="preface"> <title>Введение</title> <epigraph> <para> <emphasis>Теория без практики ...</emphasis> </para> </epigraph> <para>Данный материал ...</para> <para>По ходу ...</para> . . . </preface> <xi:include href="ch1/ch1.xml" xmlns:xi="http://www.w3.org/2001/XInclude" xpointer="element(/1)" /> . . . <xi:include href="ch4/ch4.xml" xmlns:xi="http://www.w3.org/2001/XInclude" xpointer="element(/1)" /> <xi:include href="app_a/literature.xml" xmlns:xi="http://www.w3.org/2001/XInclude" xpointer="element(/1)" /> </book>
Формат DocBook содержит большое количество тегов которые позволяют создавать документы сложной структуры. Но практика показывает, что вполне можно обойтись знанием одного или двух десятков тегов. При необходимости создания незнакомых конструкций можно посмотреть как это сделано в примерах, которые входят в поставку стандартного инсталляционного пакета. ЗамечаниеНаглядным примером сгенерированного многостраничного документа является описание процесса разработки свободного файлового менеджера "File Arranger". Данное описание доступно по адресу http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html Пример 1.3. Пример внешнего документа первой главы <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <chapter lang="ru"> <title>Анализ требований</title> <sect1> <title>Постановка задачи. Анализ</title> <para>Постановка ...</para> <para>Это ...</para> <sect2> <title>Предварительные требования</title> <para></para> <itemizedlist> <listitem> <para>Работа с файлами (просмотр, правка, копирование, перемещение, добавление и удаление).</para> </listitem> . . . <listitem> <para>Возможность работы ...</para> </listitem> </itemizedlist> </sect2> </sect1> <sect1> <title>Основные задачи ...</title> . . . <figure> <title>Диаграмма вариантов использования файлового менеджера</title> <mediaobject> <imageobject> <imagedata fileref="images/use_case_diagram1.png" /> </imageobject> </mediaobject> </figure> . . . <orderedlist> <listitem> <para>Подготовленные . . .</para> </listitem> . . . </orderedlist> </sect1> . . . <informaltable> <tgroup cols="2"> <thead> <row> <entry align="center">Значок</entry> <entry align="center">Описание</entry> </row> </thead> <tbody> <row> <entry><inlinemediaobject> <imageobject> <imagedata fileref="images/btn_show_panel.png" /> </imageobject> </inlinemediaobject></entry> <entry>Показать навигационную панель</entry> </row> . . . <row> . . . </row> </tbody> </tgroup> </informaltable> . . . <sect1> <title>Использование DocBook для написания документации</title> . . . <para>Основные преимущества формата Docbook:</para> <example> <title>Типовая структура каталогов сложного документа Docbook</title> . . . <para><programlisting> default.xml +-ch1 | | ch1.xml | \---images | adress_panel_1.png | . . . +-ch2 | | ch2.xml | \---images | . . . +-chN | | chN.xml | \---images | . . . +-app_a literature.xml </programlisting> </example> . . . <note> <para>Наглядным примером сгенерированного многостраничного документа является описание процесса разработки свободного файлового менеджера "File Arranger". Данное описание доступно по адресу <ulink url="http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html"> http://www.berdaflex.com/ru/eclipse/books/rcp_filemanager/index.html</ulink> </para> </note> . . . Для выделения <emphasis role="bold">жирного</emphasis> текста и <emphasis>курсива</emphasis> применяются теги ... </sect1> </chapter>
Инсталляционный пакет DocBook с примерами и документацией доступны на сайте проекта по адресу http://www.docbook.org. |