Разделение документа на отдельные файлы
Для работы над большим документом DocBook необходимо его логическую структуру отразить на файловую систему. Официальная документация рекомендует использовать для этого сущности SGML или XInclude. Очевидно, что и первый, и второй способы имеют недостатки:
-
вы должны вручную писать сущности SGML или xi:include, при этом имя файла, содержащего логическую часть документа будет дублироваться (в случае SGML даже два раза);
-
написание идентификаторов логических частей на вашей совести — опять дублирование имени файла.
Дублирование неизбежно ведет к ошибкам. Никому не хочется выполнять монотонную бессмысленную работу.
DocBookCompiler избавляет вас от всего этого. Он работает согласно идее изложенной в статье «DocBook: системный подход к документации» — вам надо просто отразить логическую структуру документа на файловую систему соблюдая три несложных правила:
-
Элемент DocBook должен размещаться в новом каталоге в файле index.xml — если он будет содержать элементы, которые необходимо выделить в отдельные файлы, или в новом файле. Имя каталога/файла должно начинаться с буквы — требование типа xml:id.
-
Вместо sect* и refsect* необходимо применять их рекурсивные аналоги — section и refsection.
-
Если порядок следования частей документа важен, установите порядковый номер в начале имени каталога/файла (разделитель «-»). По умолчанию сортировка по возрастанию.
Работа с полученным отражением логической структуры документа на файловую систему ничем не отличается от работы с обычными файлами и каталогами. Удаляйте, перемещайте, создавайте — потом запустите DocBookCompiler и за вас будет выполнена следующая работа:
DocBookCompiler также выполняет ряд других задач — к примеру, генерация примеров, но это уже посредством дополнительной настройки.
Использование DocBookCompiler
DocBookCompiler — это консольная программа на PHP.
.