1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
.\"
.Dd $Mdocdate$
.Dt mdocml 1
.Os
.\"
.Sh NAME
.Nm mdocml
.Nd mdoc macro compiler
.\"
.Sh SYNOPSIS
.Nm mdocml
.Op Fl v
.Op Fl W Ns Ar err...
.Op Ar infile
.\"
.Sh DESCRIPTION
The
.Nm
utility interfaces the
.Xr mdoc 3
library to scan, parse and validate mdoc-macro documents. Arguments
follow:
.Bl -tag -width "\-Werr... "
.It Fl W Ns Ar err...
Print warning messages. May be set to
.Fl W Ns Ar all
for all warnings,
.Ar compat
for groff/troff-compatibility warnings, or
.Ar syntax
for syntax warnings. If
.Fl W Ns Ar error
is specified, warnings are considered errors and cause utility
termination. Multiple
.Fl W
arguments may be comma-separated, such as
.Fl W Ns Ar error,all .
.It Fl v
Print verbose parsing output.
.It Ar infile
Read input from
.Ar infile ,
which may be
.Dq \-
for stdin.
.El
.Pp
Parsing and validation rules are drawn entirely from the
.Xr mdoc 7
and
.Xr mdoc.samples 7
manuals.
.Pp
By default,
.Nm
reads from stdin, writes messages to stdout, and writes errors and
warnings to stderr.
.Pp
.Ex -std mdocml
.Pp
.Nm
is
.Ud
.\"
.Sh EXAMPLES
To validate this manual page:
.Pp
.D1 % mdocml \-Wall,error mdocml.1
.\"
.Sh SEE ALSO
.Xr groff 1 ,
.Xr mdoc.samples 7 ,
.Xr mdoc 7 ,
.Xr mdoc 3
.\" .Sh STANDARDS
.\" .Sh HISTORY
.Sh AUTHORS
The
.Nm
utility was written by
.An Kristaps Dzonsons Aq kristaps@kth.se .
.\"
.Sh CAVEATS
The most glaring short-coming of
.Nm
is that it doesn't yet support the
.Sq \&Xc
and
.Sq \&Xo
macros when used to extend the line arguments to
.Sq \&It ;
in effect, trampling the body section. We note that this is explicitly
discouraged in
.Xr mdoc.samples 7 ,
but in practice used quite often.
.\" .Sh BUGS
|