tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

groff/-mandoc replacement



(Note that this is more-or-less a cross-post to the OpenBSD misc@ list)

If anybody's interested in using groff for displaying BSD "mdoc" manual
pages, I'm actively looking for patches and problem reports for mdocml,
<http://mdocml.bsd.lv>.  Test!  Patch!

"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."

In other words, reliving base BSD systems of groff would be very nice.

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

These are generally acceptable: Xo/Xc is discouraged and other
unimplemented constructs are TODO; there are very few non-mdoc manuals
in base and fixing rogue roff macros is pretty easy; tbl is the only
preprocessor still around and can either be merged into mdoc(3) or
converted to .It -column; and the last two are simply due to its being a
young project.

Pros:
      - ISC-licensed
      - 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 primarily for
patchers and roff/mdoc-knowledgeable testers.  Pointers:

Site:         http://mdocml.bsd.lv/
Source:       http://mdocml.bsd.lv/snapshots/mdocml.tar.gz
NetBSD Port:  http://mdocml.bsd.lv/ports-netbsd/mdocml.tar.gz

I'm still working on getting the NetBSD tmac entries (supported
operating systems, volume titles, etc.) fully imported, but it seems to
work on most of the base manuals.

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

I usually run this side-by-side with `nroff -mandoc' to find any
formatting errors.

Thanks,
Kristaps



Home | Main Index | Thread Index | Old Index