Hello, if anybody's interested in an alternative to groff for viewing
BSD "mdoc" manual pages, I'm actively looking for patches and problem
reports for mdocml.   From the site <http://mdocml.bsd.lv>:

"mdocml is a suite of tools compiling `mdoc', the roff macro package for
BSD manual pages. The mission of mdocml is to deprecate groff, the GNU
roff implementation, for displaying BSD mdoc pages."

Cons:
     - some constructs not [yet/evergoingtobe] implemented
     - no intermixed roff-language (and .me/.ms/etc.) tokens
     - no tbl/eqn/etc. support
     - still simplified w/r/t input/output non-ascii encoding
     - a work in progress!

Most of this is fine.  The un-supported constructs are specifically
discouraged in mdoc.samples.7; few manpages mingle roff with mdoc; very
few manpages use preprocessors (and only tbl at that); and few people
use the non-terminal output devices for manuals.

Pros:
     - ISC-licensed (/usr/share/misc/license.template)
     - approximately 10x speed of groff
     - internal compiler is fully-validating (no uncertainty)
     - code-size is about 1/20 the total size of groff
     - as clean as a CSG scanner-parser can be

I haven't given it much field testing, so I'm looking more for patchers
and roff/mdoc-knowledgeable testers.  Pointers:

Site:         http://mdocml.bsd.lv/
Source:       http://mdocml.bsd.lv/snapshots/mdocml.tar.gz
OpenBSD Port: http://mdocml.bsd.lv/ports-openbsd/mdocml.tar.gz

Future-features of mdocml are many: "skinnable" terminal-encodings for mdocterm(1); a rman/man2html replacement mdochtml(1) (CSS-friendly, etc.); a man.cgi replacement; and so on. Before any of these take place, the backend mdoc(3) library must be lean and mean, and above all correct. Please write me first if you'd like to help out -- mdocml is [necessarily] complex and may need some introduction.

Easy testing (use ^Z and kill %1 to stop):

 % for f in `find /usr/src/ -name \*\.[1-9]` ; do \
 > mdocterm -Wall $f | less -R ; done

Thanks,
Kristaps

Reply via email to