.\" The following requests are required for all man pages.
.\"
.\" Remove `\&' from the line below.
-.Dd $Mdocdate: November 27 2008 $
+.Dd $Mdocdate: November 30 2008 $
.Dt mdocml 1
.Os
.\"
-.Op foo
.Sh NAME
.Nm mdocml
.Nd compile manpage source into mark-up language
.\"
.Sh SYNOPSIS
.Nm mdocml
+.Op Fl W
+.Op Fl f Ar filter
.Op Fl o Ar outfile
.Op Ar infile
.\"
.Sh DESCRIPTION
The
.Nm
-utility compiles manpage source into a mark-up language. Its arguments
-are as follows:
-.Bl -tag -width "-o outfile"
+utility parses
+.Xr mdoc
+formatted manual source and passes results into the output filter
+dictated by
+.Fl f Ar filter .
+The only current output filter is
+.Ar xml ,
+the default. The arguments are as follows:
+.Bl -tag -width "\-o outfile"
+.It Fl f Ar filter
+The output filter name, which defaults to
+.Ar xml .
.It Fl o Ar outfile
Place output in
.Ar outfile ,
which may be
-.Qq -
-for standard output. The default is standard output.
+.Qq \-
+for stdout. The default is stdout.
+.It Fl W
+Print compiler warnings to stderr.
.It Ar infile
Read input from
.Ar infile ,
which may be
-.Qq -
-for standard input. The default is standard input.
+.Qq \-
+for stdin. The default is stdin.
.El
+.Ss XML Filter
+The XML filter, specified by
+.Fl f Ar xml ,
+is the default filter. It creates an XML document where element names are
+their respective roff macro names. Each element name has an associated
+namespace, which is one of
+.Qq block ,
+.Qq inline ,
+or
+.Qq special ,
+corresponding to the display mode of a node.
.\" The following requests should be uncommented and used where appropriate.
.\" This next request is for sections 2, 3, and 9 function return values only.
.\" .Sh RETURN VALUES
The
.Nm
utility was written by
-.An Kristaps Dzonsons Aq kristaps@kth.se .
+.An Em Kristaps Dzonsons Aq kristaps@kth.se .
.\"
.Sh CAVEATS
-The
+Most caveats of
.Nm
-engine doesn't understand
+stem from ambiguities in
+.Xr mdoc 7
+or the necessary limitations of converting an ad hoc language into
+structured ones:
+.Bl -enum -compact -offset indent
+.It
+The engine doesn't understand
.Sq \&Xo
and
.Sq \&Xc
troff macros.
-.Pp
-.Em All
-macro arguments may be quoted, instead of only some.
+.It
+All macro arguments may be quoted, instead of only some.
+.It
+Blank lines raise warnings.
+.It
+If terminating punctuation is found, then
+.Em all
+remaining tokens are flushed after line scope is closed, not just the
+last one.
+.El
.\" .Sh BUGS