Eric Bischoff
ebisch@cybercable.tm.fr				July 18, 2000

Introduction
------------

The docbook-utils is a set of a few small programs intended to ease
everyday's use of technical documentation software and more generally
use of SGML and XML. They are released under the GPL licence.

Tasks they currently accomplish are:
  - jw: convert SGML files to other formats (HTML, RTF, Postscript, PDF)
  - sgmldiff: detect the differerences in markup between two SGML files

Tasks they might accomplish in the future are:
  - convert legacy formats (linuxdoc, *roff, texinfo, ...) into docbook
  - provide a nice interface to collateindex.pl for easy index generation
  - etc...

The scripts assume that on the user's system the following is installed:
  - James Clark's DSSSL engine, Jade, and associated utilities like nsgmls.
  - a shell and a perl interpreters
  - Sebastian Rahtz's Jadetex set of TeX macros for Jade
  - ISO's SGML entities and other common files
  - OASIS consortium's DocBook DTD
  - Norman Walsh's modular DocBook stylesheets
  - The SGMLS Perl module


Compatibility
-------------

The docbook-utils scripts are inspired by the former scripts from the
DocBook-Tools distribution (hosted by Cygnus sourceware project). The
transition from the former docbook-tools can be ensured through the use
of wrapper scripts.

The following example of a wrapper script is for the KDE project, and can
be easily adapted to meet other needs.
  #!/bin/sh
  if [ -n "`jw --version 2>/dev/null | grep '^docbook-utils'`" ]
  then # docbook-utils
    jw   -c /usr/lib/sgml/kde/kde.cat \
         -d /usr/lib/sgml/kde/stylesheets/kde.dsl#html \
         -o db2html-dir \
         index.docbook
  else # cygnus
    db2html -d /usr/lib/sgml/stylesheets/kde.dsl \
            index.docbook
  fi

Thanks to the standardization effort that has been lead for LSB, we can
hope that those tools are becoming more and more compatible with the
SGML-Tools version 2, or with the packaging of SGML and DocBook done by
many Linux distributions. Any feedback in this area is welcome.

The docbook-utils are now able to run on non-lsb platforms by means of
the same configuration files and scripts than the ones used by
SGML-tools.

Design
------

There is a number of deliberate design choices behind the docbook-utils:

- They are maintained

It means that they should evolve in the future, with the help of the feedback
from their users. It also means that some FTP space and a Web page will be
dedicated to them. There is already a mailing list available:
  docbook-utils@bazar.conectiva.com.br

- They are distributed seperately from the other packages

They will be able to work from a package of their own, thus easing distribution
packager's work and making the whole design much clearer to anyone.

- Full support for alternate stylesheets

Anyone can write new customization stylesheets, for HTML, printout, or
both. But it is not assumed anymore that there is such a customization
stylesheet. The DocBook stylesheets can be used "out of the box".The
old db2ps problems with alternate stylesheets are fixed as well.

- HTML can be generated in any destination directory

HTML will be generated by jw in the current directory as a default, so
there will be no more conflict if the customization stylesheets declare
another target directory. This setting can be overriden through a new
-o command-line output option.

- GNUish syntax for the command-line options

All options will be both in -s short or --long form. GNU style also implies
new --help and --version options.

- Any extension for DocBook files is supported

There is no more restriction to ".sgm" or ".sgml". Someone can use
".dbk" or ".docbook" for instance.

- Modularity:

jw isolates the handling of the output format and of the input format
by means of backend and frontend files. A new backend or a new frontend
are very easy to write.
