mdocml – mdoc macro compiler, current version @VERSION@ (@VDATE@)

Description

mdocml is a suite of tools compiling mdoc, the roff macro package of choice for BSD manual pages, and man, the predominant historical package for UNIX manuals. The mission of mdocml is to deprecate groff, the GNU troff implementation, for displaying mdoc pages whilst providing token support for man.

Why? groff amounts to over 5 MB of source code, most of which is C++ and all of which is GPL. It runs slowly, produces uncertain output, and varies in operation from system to system. mdocml strives to fix this (respectively small, C, ISC-licensed, fast and regular).

mdocml consists of the libmandoc validating compiler and mandoc, which interfaces with the compiler library to format output for UNIX terminals (with support for wide-character locales), XHTML, HTML, PostScript, and PDF. It also includes preconv, for recoding multibyte manuals; and mandocdb, for indexing manuals. It is a BSD.lv project.

Disambiguation: mdocml is often referred to by its installed binary, mandoc.

Sources

mdocml is in plain-old ANSI C and should build and run on any modern system. To build and install into /usr/local/, just run make install. Be aware: if you have an existing groff installation, this may overwrite its preconv binary. The mandocdb utility is not yet linked to the build; please contact us if you plan to use it.

Current /snapshots/mdocml.tar.gz (md5)
Archives /snapshots/
Online Repository cvsweb

Binaries

Binary archives consist of pre-compiled binaries, manuals, and other necessary files. Universal (Mac OS X) binaries are compiled for the PCC, i386, and x86_64 architectures. Windows binaries are compiled with MingW for the 32-bit (i686) and 64-bit (x86_64) architectures.

Windows 32-bit /binaries/mdocml-win32.zip
Windows 64-bit /binaries/mdocml-win64.zip
Mac OS X Universal Binary /binaries/mdocml-macosx.zip
Archives /binaries/

Downstream

Several systems come bundled with mdocml utilities. If your system does not appear below, the maintainers have not contacted me and it should not be considered official. Please contact us if you plan on maintaining a downstream version!

DragonFly BSD usr.bin/mandoc
FreeBSD ports/textproc/mdocml
NetBSD src/external/bsd/mdocml
OpenBSD src/usr.bin/mandoc

Documentation

These manuals are generated automatically and refer to the current release. They are the authoritative documentation for the mdocml system.

mandoc(1) format and display UNIX manuals (text | xhtml | pdf | postscript)
mandocdb(8) index UNIX manuals (text | xhtml | pdf | postscript)
preconv(1) recode multibyte UNIX manuals (text | xhtml | pdf | postscript)
mandoc(3) mandoc macro compiler library (text | xhtml | pdf | postscript)
man(7) man language reference (text | xhtml | pdf | postscript)
eqn(7) eqn-mandoc language reference (text | xhtml | pdf | postscript)
mandoc_char(7) mandoc special characters (text | xhtml | pdf | postscript)
mdoc(7) mdoc language reference (text | xhtml | pdf | postscript)
roff(7) roff-mandoc language reference (text | xhtml | pdf | postscript)
tbl(7) tbl-mandoc language reference (text | xhtml | pdf | postscript)

Contact

Use the mailing lists for bug-reports, patches, questions, etc. (these require subscription). Please check the TODO for known issues before posting. Beyond that, contact Kristaps at kris...@bsd.lv.

disc...@mdocml.bsd.lv bug-reports, general questions, and announcements (archive)
tec...@mdocml.bsd.lv patches and system discussions (archive)
sou...@mdocml.bsd.lv source commit messages (archive)

News

16-08-2011: version 1.11.6

Handling of tr macro in roff implemented. This makes Perl documentation much more readable. Hyphenation is also now enabled in man format documents. Many other general improvements have been implemented. Furthermore, a 64-bit Windows binary is now available at mdocml-win64.zip and a Mac OS X universal binary is available at mdocml-macosx.zip.

24-07-2011: version 1.11.5

Significant eqn improvements. mdocml can now parse arbitrary eqn input (although few GNU extensions are accepted, nor is mixing low-level roff with eqn). See the eqn manual for details. For the time being, equations are rendered as simple in-line text. The equation parser satisfies the language specified in the Second Edition User's Guide.

This is also the first release featuring a distributed Windows binary, available at /binaries/mdocml-win32.zip.

12-07-2011: version 1.11.4

Bug-fixes and clean-ups across all systems, especially in mandocdb makewhatis (note: still not connected to the general build and must be compiled with make mandocdb make makewhatis) and the man parser. This release was significantly assisted by participants in OpenBSD's c2k11. Thanks!

See cvsweb for historical notes.

Copyright © 2008–2011 Kristaps Dzonsons, $Date: 2011/08/16 22:21:04 $