mdocml – mdoc macro compiler

DESCRIPTION

mdocml is a suite of tools that compile “mdoc”, the roff macro package of the BSD manual pages. The mission of mdocml is to deprecate groff, the GNU roff implementation, for displaying BSD mdoc pages. groff amounts to over 60 000 lines of GPL C++ source, which is a considerable encumbrance to BSD operating system.

The core of mdocml is the libmdoc library, a validating scanner-parser producing intermediate-form output from mdoc input. libmdoc is a simple, fast library operating on memory buffers of mdoc input. Its intermediate output, an abstract syntax tree, is fully documented in the mdoc(3) reference manual.

There are three utilities implementing mdoc(3):

  • mdocterm(1) – formats mdoc input for display on the terminal
  • mdochtml(1) – formats mdoc input as strict HTML (nascent)
  • mdoclint(1) – validates mdoc input
  • mdoctree(1) – prints input abstract syntax tree

The mdocterm(1) utility is intended to deprecate usage of groff for displaying BSD manuals to the terminal, either directly or cached as a “catman” page.

Please submit patches! Although a significant implementation exists, work remains for the backend library and especially the front-end utilities. See the contact information below to submit patches and bug reports.

INSTALLING SOURCES

Sources correctly build and install on OpenBSD, NetBSD and Linux operating systems, tested variously on i386, AMD64 and Alpha.

snapshotted source

CVS sources are checkedout and snapshotted with big updates. These may be found in the /snapshots/ directory.

% cd /tmp
% ftp -V -o- http://mdocml.bsd.lv/snapshots/mdocml.tar.gz | tar -zvxf -
% cd mdocml
% make && make regress && make install

nightly port

The source snapshot is automatically converted into an OpenBSD port (ports for other BSD systems not yet available). These may be found in the /ports-openbsd/ directory. You must have the ports tree installed.

% sudo pkg_delete mdocml
% cd /usr/ports/devel/
% sudo rm -rf mdocml
% ftp -V -o- http://mdocml.bsd.lv/ports-openbsd/mdocml.tar.gz | sudo tar -zvxf -
% cd mdocml
% sudo make && sudo make regress && sudo make install

CONTACT

Please contact Kristaps, kris...@kth.se, with questions, bug reports, patches, and so on.

If you'd like to submit patches, please contact us beforehand in case larger changes are pending but not checked in. If making a bug report, please make sure it's repeatable on the most current snapshot.

Copyright © 2009 Kristaps Džonsons, $Date$