BoostBook является расширением DocBook, форматом XML для представления документации. BoostBook наследует большую часть своей функциональности и многие элементы из DocBook, которые не переизданы здесь. При написании документации BoostBook, пожалуйста, обратитесь также к DocBook: The Definitive Guide.
Defining a BoostBook library
Библиотечная документация BoostBook полностью содержится в элементе XML. Для создания скелетной библиотеки нам необходимо создать новый XML-документ (назовите его any.xml), который содержит основную информацию о библиотеке. Следующий пример BoostBook XML описывает основную информацию о Boost. Любая библиотека:
Example 44.1. A Skeletal BoostBook Library
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<library name="Any" dirname="any" xmlns:xi="http://www.w3.org/2001/XInclude"
id="any" last-revision="$Date$">
<libraryinfo>
<author>
<firstname>Kevlin</firstname>
<surname>Henney</surname>
</author>
<librarypurpose>
Safe, generic container for single values of different value types
</librarypurpose>
<librarycategory name="category:data-structures"/>
</libraryinfo>
</library>
Первые три строки идентифицируют этот документ как документ BoostBook XML. Линия DOCTYPE гласит, что документ соответствует BoostBook DTD, и что элемент верхнего уровня является BoostBook .
Элемент фактически описывает аспекты библиотечной документации BoostBook. Атрибуты элемента :
Attributes for the <library> element
name
The full name of the library, e.g., "Any"
dirname
The name of the directory, relative to
boost/libs, in which the library
resides. This name may be a relative path, such as
math/octonion, using "/" for the directory
separator.
id
A short, unique name for the library. For libraries
with simple directory names (e.g., ones that do not contain
a "/"), this should be the same as the
dirname. This id will be used to
identify libraries and, for HTML output, will be used as the
base name for the HTML file in which the library's
documentation resides, so it should use only lowercase
alphanumeric characters and underscores.
last-revision
Always set to $Date$, which is
expanded by CVS to include the date and time that the file
was last modified.
Внутри элемента мы имеем элемент , который дает информацию о самой библиотеке. Оно содержит имя автора (может быть более одного элемента ), за которым следует цель библиотеки и список категоризации. Элемент всегда должен содержать очень короткое (однозначное) описание цели библиотеки и должен не заканчиваться периодом.
Список категорий определяется набором элементов . Каждый элемент имеет элемент имя, который идентифицирует одну из категорий. Фактический список категорий находится в файле doc/src/boost.xml.
На данный момент мы можем применить таблицы стилей BoostBook XSL к any.xml (до DocBook), за которым следует таблица стилей DocBook XSL для создания HTML-выхода, как описано в разделе под названием “Getting Started”.
From HTML to BoostBook
Большинство авторов библиотеки довольны написанием документации HTML. Написание DocBook документация (и, в дополнение, документация BoostBook) очень похожа на на написание HTML, за исключением того, что BoostBook использует разные названия элементов из HTML (см. Table 44.2, “Converting HTML-элементы для BoostBook”) и BoostBook XML - гораздо более жесткий формат, чем HTML.
Один из самых простых способов конвертировать HTML-документацию в документацию BoostBook - использовать HTML Tidy для преобразования вашего HTML в действительный XHTML, который позволит убедиться, что все элементы должным образом закрыты, а затем применить преобразования в Table 44.2, “ Переключение HTML-элементов в BoostBook” в корпус документа XHTML. Следующая команда использует HTML Tidy для преобразования HTML в действительный XHTML:
tidy -asxhtml input.html > output.xhtml
При преобразовании документации из HTML в BoostBook обратите внимание, что некоторая избыточная информация, которая должна быть сохранена вручную в HTML, автоматически генерируется в BoostBook: например, библиотечные категоризации, цель и список авторов, описанный в разделе под названием “ Определение библиотеки BoostBook” используются как в документации для библиотеки, так и для создания алфавитных и категоризированных списков известных библиотек; аналогично, таблицы содержимого строятся автоматически из названий разделов в документе BoostBook.
, , , , , , , , Столы BoostBook эквивалентны таблицам DocBook, для которых здесь есть хороший tutorial
Sectioning in BoostBook
«Раздел» означает организацию документа на отдельные разделы, каждый с названием, некоторым текстом и, возможно, подразделами. Каждый раздел описан в BoostBook через элемент . Раздел введения может выглядеть так:
<section id="any.intro">
<title>Introduction</title>
<para>Introduction to a library...</para>
<section>
<title>A Subsection</title>
<para>Subsection information...</para>
</section>
</section>
Элемент содержит всю информацию, которая логически должна быть сгруппирована в этом разделе. Название раздела помещается в элемент и любые пункты, программы, списки, таблицы или подразделы могут происходить в разделе. атрибут id элемента дает уникальный идентификатор для каждого раздела, чтобы впоследствии его можно было идентифицировать для подключения. Предполагается, что все идентификаторы начинаются с короткого названия библиотеки, за которым следует период, так что идентификаторы не конфликтуют между библиотеками.
Статья Documenting libraries раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 44. The BoostBook Documentation Format может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.