SGML and DocBook do not suffer from an oversupply of open-source authoring tools. The most common tool set is the Emacs/XEmacs editor with appropriate editing mode. On some systems these tools are provided in a typical full installation.
PSGML is the most common and most powerful mode for editing SGML documents. When properly configured, it will allow you to use Emacs to insert tags and check markup consistency. You could use it for HTML as well. Check the PSGML web site for downloads, installation instructions, and detailed documentation.
There is one important thing to note with
PSGML: its author assumed that your
main SGML DTD directory
would be /usr/local/lib/sgml
. If, as in the
examples in this chapter, you use
/usr/local/share/sgml
, you have to
compensate for this, either by setting
SGML_CATALOG_FILES
environment variable, or you
can customize your PSGML installation
(its manual tells you how).
Put the following in your ~/.emacs
environment file (adjusting the path names to be appropriate for
your system):
; ********** for SGML mode (psgml) (setq sgml-omittag t) (setq sgml-shorttag t) (setq sgml-minimize-attributes nil) (setq sgml-always-quote-attributes t) (setq sgml-indent-step 1) (setq sgml-indent-data t) (setq sgml-parent-document nil) (setq sgml-exposed-tags nil) (setq sgml-catalog-files '("/usr/local/share/sgml/catalog")) (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t )
and in the same file add an entry for SGML
into the (existing) definition for
auto-mode-alist
:
(setq auto-mode-alist '(("\\.sgml$" . sgml-mode) ))
You might find that when using PSGML, a
comfortable way of working with these separate files of book
parts is to insert a proper DOCTYPE
declaration while you're editing them. If you are working on
this source, for instance, it is an appendix chapter, so you
would specify the document as an “appendix” instance
of a DocBook document by making the first line look like this:
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook V4.2//EN">
This means that anything and everything that reads
SGML will get it right, and I can verify the
document with nsgmls -s docguide.sgml
. (But
you need to take out that line before building the entire
documentation set.)
GNU Emacs ships with a different
SGML mode, which is not quite as powerful as
PSGML, but it's less confusing and
lighter weight. Also, it offers syntax highlighting (font lock),
which can be very helpful.
src/tools/editors/emacs.samples
contains
sample settings for this mode.
Norm Walsh offers a major mode specifically for DocBook which also has font-lock and a number of features to reduce typing.