====== Working with DocBook Manuals ====== ===== Required Tools ===== No special tools are needed to edit DocBook files, a plain-text editor is good enough to do the job, although a specialized XML editor may be useful. In order to build the manuals however, you need to have a working DocBook tool chain installed on your system. ==== MantisBT 1.3 and later ==== MantisBT 1.3 uses [[https://fedorahosted.org/publican/|Publican]] to build the documentation. All necessary tools can be installed with the following command, which takes care of dependencies. $ sudo apt-get install publican This was tested successfully on Ubuntu 14.04 LTS, but should work with older versions too. ==== MantisBT 1.2 ==== To build MantisBT 1.2 documentation, this tool chain includes //GNU Make//, //OpenJade//, and various //DocBook// tools. The command below installs the toolchain on **Ubuntu**-based systems (tested successfully on Ubuntu 12.04 LTS and 13.04 desktop) $ sudo apt-get install docbook docbook-dsssl docbook-slides docbook-utils linuxdoc-tools make openjade xmlto For **Debian**-based Linux distributions, simply install the necessary packages with the following command: $ sudo aptitude install docbook docbook-dsssl docbook-slides docbook-utils linuxdoc-tools make openjade xmlto For **Fedora**-based distros, run this command instead: $ su -c 'yum groupinstall "Authoring and Publishing"' ===== Building a DocBook Manual ===== ==== MantisBT 1.3 and later ==== GNU Make files are present in each DocBook's directory, allowing easy build with a single command. To build all DocBooks in default //html-desktop// format cd /path/to/mantisbt/docbook make To process a specific DocBook, first go to the corresponding directory, e.g. for Administrator's Guide cd /path/to/mantisbt/docbook/Admin_Guide then execute the appropriate command: * Build it in default (//html-desktop//) format make * Validate the XML files, without building the DocBook make test * Build a PDF make pdf * Clean build in all available formats make clean all This is just a few examples, refer to the [[https://github.com/jhradilek/publican-makefile|Makefile's documentation]] for further details. It is also possible to manually execute Publican, e.g. publican build --langs=en-US --formats=html-desktop,pdf ==== MantisBT 1.2 ==== We will use the Developer's Guide in English as the example manual for this process, which is in the ''developers/en/'' directory. You can substitute any other manual or language, assuming the manual exists and has been translated to that language. Enter the directory containing the preferred manual: $ cd /path/to/mantisbt/docbook/adminguide/en Run ''make'' with a list of resulting file types that you want to build. Currently, our DocBook manuals can produce PDF, HTML (split or single page), RTF, Postscript, or plain-text manuals. All resulting manual files will be placed in the ''build/'' subdirectory. In this example, we will build both a PDF and a split HTML manual: $ make pdf html $ ls -R build/ build: developers developers.pdf build/developers: dev.database.html dev.eventref.html dev.plugins.html index.html dev.database.install.html dev.events.html images LEGAL.html For installing manuals into a specific location, such as for building manuals on web servers, first clean and build the desired DocBook manuals, and then run the install routine with the necessary install path: $ make clean $ make pdf html $ make INSTALL_DIR=/path/to/install install - or for cron jobs (order matters): $ make INSTALL_DIR=/path/to/install clean pdf html install ===== Simple Build Script ===== Taking it one step further, there is a Python script in ''trunk/dev/'' named ''docbook-manual.py'' that takes the following set of arguments to automate the update/build process from an SVN checkout: $ docbook-manual.py [ ...] The last parameter is optional, and can be a space-separated list of docbook languages to build. The results are put into the destination directory in the form of ''/''. An example command and resulting hierarchy: $ /home/user/mantisbt/trunk/dev/docbook-manual.py /home/user/mantisbt/trunk/docbook /var/www/mantis en de $ tree /var/www/mantis mantis -- en ---- administration_guide ---- developers -- de ---- administration_guide ---- developers