
Использование Docbook вместо Word для создания документации.
Это история о том, как автоматизировать подготовку технической документации.
Долгое время я искала наиболее подходящий (т.е. наиболее гибкий и удобный) инструмент для написания текстов различной тематики, начиная с рефератов и курсовых работ в школе и университете, статей и заканчивая технической документацией программного продукта - руководство пользователя (help к программе) и руководство программиста.
В конце концов я пришла к выводу, что наиболее гибким инструментом, т.е. предоставляющим наибольшие возможности для решения многих задач является текстовый процессор, а именно MS Word, но и он полон серьезных недостатков. Рассмотрим подробнее, почему же все-таки MS Word абсолютно не подходит для подготовки таких текстов, как, например, техническая документация.
Когда нужно срочно написать какой-либо текст, мы меньше всего желаем тратить время на обдумывание форматирования нашего текста, а между тем это одна из основных задач - качественное форматирование текста. Текст должен легко читаться, чаще всего нужно сохранить определенный стиль форматирования (некий корпоративный стиль), и в конце концов внешний вид будущей статьи должен радовать глаз.
MS Word.
На первый взгляд Word предоставляет самые широкие возможности форматирования - пользуйся стилями и все в порядке. Но за кажущейся простотой применения стилей в Word, скрывается много сложностей и ошибок, подстерегающих неопытного пользователя и много головной боли для опытного пользователя.
Если мы хотим менять оформление текста после его написания, в частности для того, чтобы подобрать наиболее симпатичные шрифты и интервалы, чтобы текст читался лучше, необходимо каждый элемент текста - будь то параграф, заголовок или имя файла внутри параграфа - еще на этапе написания текста выделить определенным стилем. Тогда в последствии изменив характеристики конкретного стиля, мы изменим внешний вид каждого элемента текста, к которому был применен этот стиль.
В Word
для этих целей существует панель форматирования, стили и шаблоны. Система стилей достаточна гибкая - набор применяемых в документе стилей может быть как расширен своими собственными стилями, так и уменьшен. Но для этих целей, если вы пишете техническую документацию не в последний раз - вам необходимо придумать собственный шаблон со стилями, которые будут включать такие элементы как, например, код (листинг программы), имя файла, стили для таких параграфов как warning, note и так далее.
В DocBook
здесь же вы просто открываете практически любой XML редактор (как впрочем можно и простой текстовый редактор, но с ним будет по сложнее), и совершенно не задумываясь о стилях и форматировании набираете текст в формате XML, используя теги формата DocBook. Эти теги однозначно определяют назначение каждого элемента текста.
<para>На собственном опыте проверено, что DocBook имеет <emphasis>все</emphasis> необходимое - чтобы правильно структурировать текст как большой, типа книги, так и маленький - как, например, эта статья.</para> <para>Названия тегов интуитивно понятны и не возникает двусмысленности, не надо задумываться какой тег выбрать. Если это заголовок, не вожно чего статьи или секции - это <sgmltag>title</sgmltag>, если это сноска - значить <sgmltag>footnote</sgmltag> - все очень-очень просто.</para> *
Набор тегов DocBook очень хорошо продуман (системе DocBook ведь уже 10 лет) - в нем существуют все необходимые элементы для оформления технической документации и структура формата DocBook такова, что вы с легкостью сможете структурировать свой текст по частям, разделив на секции разного уровня, параграфы различных типов, а также различные списки, библиографии, индексы и т.д.
На собственном опыте проверено, что DocBook имеет все необходимое - чтобы правильно структурировать текст как большой, типа книги, так и маленький - как, например, эта статья.
Названия тегов интуитивно понятны и не возникает двусмысленности, не надо задумываться какой тег выбрать. Если это заголовок, не важно чего статьи или секции - это title, если это сноска - значить footnote - все очень-очень просто.
Наглядность набираемого текста обеспечивается подсветкой тегов существующей в XML редакторах, а также в некоторых XML редакторах предусмотрены специальные WISYWIG режимы, в которых вы как и в Word'e видете и редактируете сразу отформатированный текст:
Еще одно преимущество XML формата и XML редактора - вы никак не ошибетесь с форматированием - редактор всегда подскажет и укажет, как тег в данном контексте уместен, а какой просто не возможен. Таким образом на выходе вы всегда получаете "чистую" разметку.
В Word
Если все стили были в тексте применены правильно, то изменить, например, внешний вид заголовков второго уровня не составит труда - вы просто изменяете формат стиля используемого для заголовков второго уровня, при этом должен поменяться вид всех таких заголовков
Ну а если мы желаем применить какой то особенный стиль всего текста, например, наш собственный корпоративный стиль? Меняем стиль каждого элемента поотдельности или пытаемся применить свой шаблон документа, в котором кстати имена стилей одинаковых по смыслу элементов могут и не соответствовать; к тому же, к слову сказать, применение другого шаблона к уже написанному тексту не совсем тривиальная задача в Word'е. Далее, на следующей неделе мы поменяли свой корпоративный стиль (может даже и не сильно), что делать с уже написанным текстом? опять менять шаблон.
В DocBook
Еще раз повторюсь - вы пишете текст в формате DocBook и не забываете его структурировать в соответствии со смысловой нагрузкой каждого элемента, а о последующем форматировании (внешнем виде выходного документа) вы не думаете вовсе.
Благодаря открытому проекту DocBook XSLs, представляющему собой набор прекрасно настраиваемых DSSSL и XSL stylesheets, и использованию CSS, вы или кто-то другой легко сможете настроить внешний вид выходного документа, в любой момент его можно изменить и применить уже готовые использованные ранее шаблоны.
При написании текста в стиле DocBook вы храните отдельно мухи (данные) и котлеты (шаблоны форматирования), что позволяет легко и быстро менять внешний вид выходного документа, не изменяя сам файл, содержащий текст, а также дает дополнительную возможность - легкий доступ к данным внутри документа.
Ниже приведена классификация тегов DocBook (автор А. Белайчук). Это не полная классификация, но в ней приведены большинство наиболее употребительных тегов (см. там).
Хранение документа в формате Word
с немалыми затратами дискового пространства. В этом формате хранятся как данные, так и форматирование этого документа, причем в файле Word кроме необходимого форматирования, которое обеспечивает внешний вид нашего документа, сохраняется также много "лишних" данных.
Таким образом, сохраняя в Word несколько документов одинакового форматирования, информация о форматах дублируется во всех файлах.
В DocBook
как уже было сказано выше - информация храниться отдельно от дизайна и соответственно не повторяется.
В Word 2003
существует возможность сохранить текст в следующих форматах -
Все эти форматы плохо передают форматирование, сделанное в Word; и к тому же добавляют много совершенно ненужной информации.
В DocBook
Благодаря открытому проекту DocBook XSLs, представляющему собой набор прекрасно настраиваемых DSSSL и XSL stylesheets, и существованию ряда как бесплатных, так и коммерческих инструментов для преобразования XML, вы легко (одной кнопкой) получаете свою документацию в различных форматах, в том числе и подготовленной для печати (в формате PDF).
HTML, XHTML (один выходной файл или несколько с навигацией для переходов по страницам)
HTMLhelp (CHM)
XSL-FO (затем в PDF)
javahelp
manpages
slides (создание слайдов, выходной формат - любой из выше перечисленных)
WordML
Корневым называется самый внешний тэг XML-документа. Корневыми тэгами DocBook обычно служат:
article — для документов относительно небольшого объема (формата статьи)
book — для более объемных и строже оформленных документов (книг)
Документ DocBook обычно начинается тэгом articleinfo или bookinfo, который группирует следующую информацию:
title — название
author — авторы
keyword — ключевые слова
copyright — авторские права
revhistory — история изменений
Структурные тэги делят документ на главы и разделы:
chapter — глава книги
section — раздел книги или статьи (произвольного уровня)
abstract — аннотация
preface — вступительное слово
appendix — приложение
bibliography — список литературы
index — предметный указатель
Главы и разделы обычно начинаются с названия title.
Регулярный текст в DocBook оформляется тэгом para. Это — наиболее часто используемый тэг.
Абзацы, требующие особого внимания, оформляются тэгами:
note — примечание
tip — подсказка, совет
warning — предупреждение (обычно об опасности для человека)
caution — предупреждение (обычно об опасности для оборудования)
important — важное замечание
Списки в DocBook бывают следующих видов:
itemizedlist — маркированный
orderedlist — нумерованный
variablelist — список переменных или определений
Пункт списка оформляется тэгом listitem, термин или переменная в variablelist — тэгом term.
Тэги для выделения текста внутри абзаца:
emphasis — смысловое ударение
filename — имя файла
command — компьютерная команда
option — опция (ключ) команды
replaceable — переменная часть (аргумент) команды
computeroutput — сообщение программы
literal — кодовое слово
Тэги для цитат:
quote — просто закавыченный текст внутри абзаца
blockquote — цитата из одного или нескольких абзацев
citetitle — название процитированного источника
Тэги для различных вариантов ссылок:
ulink — интернет-ссылки
link — перекрестные ссылки внутри документа, текст ссылки подставляется автоматически
xref — перекрестные ссылки внутри документа, текстом ссылки можно задавать произвольно
olink — ссылки на другие документы в рамках единой базы данных ресурсов
К разновидности ссылок можно отнести также сноски:
footnote — примечание к тексту
callout — примечание к иллюстрации или листингу программы
Для вставки в текст изображений в DocBook есть два способа:
graphic — простой, но не гибкий
mediaobject — более сложный, позволяет автору предоставлять несколько альтернативных форматов изображения
Графику можно вставлять непосредственно внутрь раздела или абзаца, но предпочтельнее — в один из следующих тэгов:
figure — иллюстрация, включаемая в автоматически генерируемый список иллюстраций
informalfigure — иллюстрация без названия и не попадающая в список иллюстрация
screenshot — графическая копия экрана компьютера
Там, где требуется, чтобы текст обтекал изображение, используются тэги:
inlinegraphic — упрощенный вариант
inlinemediaobject — универсальный вариант
Корневые тэги таблицы DocBook:
table — таблица, включаемая в автоматически генерируемый список таблиц
informaltable — таблица без названия и не включаемая список таблиц
Содержимое таблицы:
thead — шапка
tbody — тело
tfoot — подвал
row — строка
entry — ячейка
entrytbl — вложенная таблица
Тэги для различных вариантов компьютерных листингов, форматируемых "как есть" :
code — фрагмент программного кода внутри абзаца
programlisting — текст программы
screen — текст, видимый на экране компьютера
literallayout — произвольный заранее отформатированный текст
Листинги можно вставлять непосредственно в раздел или абзац, но часто они являются содержимым следующих тэгов:
example — пример, включаемый в автоматически генерируемый список примеров
informalexample — пример без названия и не попадающий в список примеров
Листинги часто сопровождаются примечаниями-сносками:
co — место, к которому относится примечание
calloutlist — список примечаний, обычно следующий за листингом
callout — текст примечания
Почему то вы не
Почему то вы не упомянули процесс инсталляции и настройки продуктов. Если MS Word устанавливается в автоматическом режиме, пользователю надо только следовать мастеру установки. С DocBook же ситуация достаточно запутанная, надо установить несколько продуктов от разных производителей. Более того, пока я нигде в интернете не смог найти пошагового описания настройки DocBook под WindowsXP.
Т.е. время вхождения в этот проект гораздо выше, чем для MS Word.
Для того, чтобы
Для того, чтобы использовать Docbook надо иметь потребность, а не просто желание. Тогда выгоды, предоставляемые Docbook, перекроют все затраты на его внедрение (и временные и финансовые).
P.S. Под XP все просто настраивается.
Спасибо автору,
Спасибо автору, материал просто замечательный
Жалко, что я сначала разобрался методом тыка и чтения манов, прежде чем нашёл Вашу заметку
Отныне с собираюсь везде и повсеместно в своих проектах примерять DocBook
а MSO я не применяю уже года два, вместо него использую ООо
Интересно ООо умеет работать с DocBook ?
OOo умеет
OOo умеет работать с DocBook - очень коротко можно посмотреть тут
http://xml.openoffice.org/xmerge/docbook/UserGuide.html
Но не советую использовать OOo для docbook - неудобно.
Лучше использовать Xml редакторы.
Если Вы технический писатель и работаете с большими текстами,
Вам подойдет Serna.
Если Вы разработчик, то Вам подойдет
Oxygen или AltovaXMLspy
Oxygen вроде кучу
Oxygen вроде кучу денег стоит
я по старинке, в любом текстовом редакторе
Отправить новый комментарий