- 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 roff implementation, for
+
+
+ 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 roff 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).
-
-
-
- The core of mdocml is composed of the libmdoc and libman
- validating compiler libraries. Both are simple, fast libraries operating on memory buffers, so they may
- be used for a variety of front-ends (terminal-based, CGI and so on). The primary front-end is
- mandoc, which formats manuals for display on the terminal.
-
-
-
-
-
-
- INSTALLING SOURCES
-
-
-
- Sources correctly build and install on FreeBSD, OpenBSD, NetBSD and Linux operating systems, tested
- variously on i386, AMD64, alpha and others. The most current version is @VERSION@, dated @VDATE@.
-
-
-
- Snapshot source
-
-
-
- CVS sources are checkedout and snapshotted with version updates. These (and all historical snapshots)
- may be found in the /snapshots/ directory. A full ChangeLog is written with each new snapshot.
-
- For all issues related to mdocml, contact Kristaps, kris...@kth.se.
-
-
-
- If you want to receive a semi-automated mail-out of new versions, then please write with a message
- subject of “subscribe mdocml” (or, symmetrically, “unsubscribe mdocml”).
-
+ The core of mdocml is composed of the libmdoc, libman, and libroff validating compiler libraries. All
+ are simple, fast libraries operating on memory buffers, so they may be used for a variety of front-ends
+ (terminal-based, CGI and so on). The front-end is mandoc, which formats
+ manuals for display.
+
+ Sources correctly build and install on DragonFly BSD, FreeBSD, OpenBSD, NetBSD, GNU/Linux, and many
+ other operating systems, tested variously on i386, AMD64, alpha, and others. The most current version
+ is @VERSION@, dated @VDATE@. A full ChangeLog (txt) is written with each release.
+
+ For all issues related to mdocml, contact Kristaps Dzonsons, kris...@bsd.lv.
+
+
+
+ You may also subscribe to several mailing lists (these require subscription, which is moderated). An
+ archive is not yet available on-line, although you may request one once subscribed.
+
+ This primarily focusses on the Bl and It macros described in mdoc. Multi-line column support is now fully compatible with
+ groff, as are implicit list entries for columns. Removed manuals.7 in favour of http://manpages.bsd.lv. The way we
+ handle the SYNOPSIS section (see the SYNOPSIS documentation in MANUAL STRUCTURE) has also
+ been considerably simplified compared to groff's method. Furthermore, the -Owidth=width output option has been added to -Tascii (see mandoc). Lastly, initial
+ PostScript output has been added with the -Tps option to mandoc. It's brutally simple at the moment: fixed-font, with
+ no font decorations.
+
+
+
+
+ 29-05-2010:
+ version 1.10.0
+
+
+ Release consisting of the results from the m2k10 hackathon and up-merge from OpenBSD.
+ This requires a significant note of thanks to Ingo Schwarze (OpenBSD) and Joerg
+ Sonnenberger (NetBSD) for their hard work, and again to Joerg for hosting m2k10.
+ Highlights (mostly cribbed from Ingo's m2k10 report) follow in no particular order:
+
end-of-sentence (EOS) detection in free-form and macro lines;
+
correct handling of tab-separated columnar lists in -mdoc;
+
improved main calling routines to optionally use mmap() for better
+ performance;
+
cleaned up exiting when invoked as -Tlint or over
+ multiple files with -fign-errors;
+
error and warning message handling re-written to be unified for libroff, libmdoc, and libman;
+
handling of badly-nested explicit-scoped macros;
+
improved free-form text parsing in libman and libmdoc;
+
significant GNU troff compatibility improvements in -Tascii, largely in terms of spacing;
+
a regression framework for making sure the many fragilities of GNU troff
+ aren't trampled in subsequent work;
+
support for -Tascii breaking at hyphens
+ encountered in free-form text;
+
and many more minor fixes and improvements (no really, consult cvsweb and see
+ for yourself!).
+
+
+
+
+ 13-05-2010:
+ version 1.9.25
+
+
+ Fixed handling of \*(Ba escape. Backed out -fno-ign-chars (pointless complexity). Fixed erroneous
+ breaking of literal lines. Fixed SYNOPSIS breaking lines before non-initial
+ macros. Changed default section ordering. Most importantly, the framework for
+ end-of-sentence double-spacing is in place, now implemented for the
+ end-of-sentence, end-of-line rule. This is a stable roll-back point
+ before the mandoc hackathon in Rostock!
+
+
+
+
+ 09-05-2010:
+ version 1.9.24
+
+
+ Rolled back break-at-hyphen. -DUGLY is now the
+ default (no feature splits!). Free-form text is not de-chunked any more: lines
+ are passed whole-sale into the front-end, including whitespace. Added mailing
+ lists. Lastly, mdocml is the focus of two Google Summer of Code
+ projects this year: mandoc -Tps
+ (NetBSD) and BSD-licensed
+ Text-Processing Tools (FreeBSD).
+