version 1.50, 2010/01/29 14:39:38 |
version 1.58, 2010/04/12 19:27:22 |
|
|
. |
. |
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm mandoc |
.Nm mandoc |
.Op Fl f Ns Ar option... |
.Op Fl V |
|
.Op Fl f Ns Ar option |
.Op Fl m Ns Ar format |
.Op Fl m Ns Ar format |
.Op Fl O Ns Ar option... |
.Op Fl O Ns Ar option |
.Op Fl T Ns Ar output |
.Op Fl T Ns Ar output |
.Op Fl V |
.Op Fl W Ns Ar err |
.Op Fl W Ns Ar err... |
.Op Ar file... |
.Op Ar infile... |
|
. |
. |
. |
. |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
|
|
.Nm |
.Nm |
utility formats |
utility formats |
.Ux |
.Ux |
manual pages for display. The arguments are as follows: |
manual pages for display. |
|
The arguments are as follows: |
. |
. |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl f Ns Ar option... |
.It Fl f Ns Ar option |
Comma-separated compiler options. See |
Comma-separated compiler options. |
|
See |
.Sx Compiler Options |
.Sx Compiler Options |
for details. |
for details. |
. |
. |
.It Fl m Ns Ar format |
.It Fl m Ns Ar format |
Input format. See |
Input format. |
|
See |
.Sx Input Formats |
.Sx Input Formats |
for available formats. Defaults to |
for available formats. |
.Fl m Ns Ar andoc . |
Defaults to |
|
.Fl m Ns Cm andoc . |
. |
. |
.It Fl O Ns Ar option... |
.It Fl O Ns Ar option |
Comma-separated output options. See |
Comma-separated output options. |
|
See |
.Sx Output Options |
.Sx Output Options |
for details. |
for details. |
. |
. |
.It Fl T Ns Ar output |
.It Fl T Ns Ar output |
Output format. See |
Output format. |
|
See |
.Sx Output Formats |
.Sx Output Formats |
for available formats. Defaults to |
for available formats. |
.Fl T Ns Ar ascii . |
Defaults to |
|
.Fl T Ns Cm ascii . |
. |
. |
.It Fl V |
.It Fl V |
Print version and exit. |
Print version and exit. |
. |
. |
.It Fl W Ns Ar err... |
.It Fl W Ns Ar err |
Comma-separated warning options. Use |
Comma-separated warning options. |
.Fl W Ns Ar all |
Use |
|
.Fl W Ns Cm all |
to print warnings, |
to print warnings, |
.Fl W Ns Ar error |
.Fl W Ns Cm error |
for warnings to be considered errors and cause utility |
for warnings to be considered errors and cause utility |
termination. Multiple |
termination. |
|
Multiple |
.Fl W |
.Fl W |
arguments may be comma-separated, such as |
arguments may be comma-separated, such as |
.Fl W Ns Ar error,all . |
.Fl W Ns Cm error , Ns Cm all . |
. |
. |
.It Ar infile... |
.It Ar file |
Read input from zero or more |
Read input from zero or more files. |
.Ar infile . |
If unspecified, reads from stdin. |
If unspecified, reads from stdin. If multiple files are specified, |
If multiple files are specified, |
.Nm |
.Nm |
will halt with the first failed parse. |
will halt with the first failed parse. |
.El |
.El |
|
|
or |
or |
.Xr man 7 |
.Xr man 7 |
text from stdin, implying |
text from stdin, implying |
.Fl m Ns Ar andoc , |
.Fl m Ns Cm andoc , |
and produces |
and produces |
.Fl T Ns Ar ascii |
.Fl T Ns Cm ascii |
output. |
output. |
. |
. |
.Pp |
.Pp |
|
|
and |
and |
.Xr man 7 |
.Xr man 7 |
input with |
input with |
.Fl m Ns Ar doc |
.Fl m Ns Cm doc |
and |
and |
.Fl m Ns Ar an , |
.Fl m Ns Cm an , |
respectively. The |
respectively. |
|
The |
.Xr mdoc 7 |
.Xr mdoc 7 |
format is |
format is |
.Em strongly |
.Em strongly |
Line 125 should only be used for legacy manuals. |
|
Line 135 should only be used for legacy manuals. |
|
. |
. |
.Pp |
.Pp |
A third option, |
A third option, |
.Fl m Ns Ar andoc , |
.Fl m Ns Cm andoc , |
which is also the default, determines encoding on-the-fly: if the first |
which is also the default, determines encoding on-the-fly: if the first |
non-comment macro is |
non-comment macro is |
.Sq \&Dd |
.Sq \&Dd |
|
|
.Pp |
.Pp |
If multiple |
If multiple |
files are specified with |
files are specified with |
.Fl m Ns Ar andoc , |
.Fl m Ns Cm andoc , |
each has its file-type determined this way. If multiple files are |
each has its file-type determined this way. |
|
If multiple files are |
specified and |
specified and |
.Fl m Ns Ar doc |
.Fl m Ns Cm doc |
or |
or |
.Fl m Ns Ar an |
.Fl m Ns Cm an |
is specified, then this format is used exclusively. |
is specified, then this format is used exclusively. |
. |
. |
. |
. |
|
|
.Sx OUTPUT ) : |
.Sx OUTPUT ) : |
. |
. |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl T Ns Ar ascii |
.It Fl T Ns Cm ascii |
Produce 7-bit ASCII output, backspace-encoded for bold and underline |
Produce 7-bit ASCII output, backspace-encoded for bold and underline |
styles. This is the default. See |
styles. |
|
This is the default. |
|
See |
.Sx ASCII Output . |
.Sx ASCII Output . |
. |
. |
.It Fl T Ns Ar html |
.It Fl T Ns Cm html |
Produce strict HTML-4.01 output, with a sane default style. See |
Produce strict HTML-4.01 output, with a sane default style. |
|
See |
.Sx HTML Output . |
.Sx HTML Output . |
. |
. |
.It Fl T Ns Ar xhtml |
.It Fl T Ns Cm lint |
Produce strict XHTML-1.0 output, with a sane default style. See |
Parse only: produce no output. |
.Sx XHTML Output . |
Implies |
|
.Fl W Ns Cm all |
|
and |
|
.Fl f Ns Cm strict . |
. |
. |
.It Fl T Ns Ar tree |
.It Fl T Ns Cm tree |
Produce an indented parse tree. |
Produce an indented parse tree. |
. |
. |
.It Fl T Ns Ar lint |
.It Fl T Ns Cm xhtml |
Parse only: produce no output. |
Produce strict XHTML-1.0 output, with a sane default style. |
|
See |
|
.Sx XHTML Output . |
.El |
.El |
. |
. |
.Pp |
.Pp |
Line 189 Default compiler behaviour may be overridden with the |
|
Line 208 Default compiler behaviour may be overridden with the |
|
flag. |
flag. |
. |
. |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl f Ns Ar ign-scope |
.It Fl f Ns Cm ign-errors |
When rewinding the scope of a block macro, forces the compiler to ignore |
When parsing multiple files, don't halt when one errors out. |
scope violations. This can seriously mangle the resulting tree. |
Useful with |
.Pq mdoc only |
.Fl T Ns Cm lint |
|
over a large set of manuals passed on the command line. |
. |
. |
.It Fl f Ns Ar ign-escape |
.It Fl f Ns Cm ign-escape |
Ignore invalid escape sequences. |
Ignore invalid escape sequences. |
This is the default, but the option can be used to override an earlier |
This is the default, but the option can be used to override an earlier |
.Fl f Ns Ar strict . |
.Fl f Ns Cm strict . |
. |
. |
.It Fl f Ns Ar no-ign-escape |
.It Fl f Ns Cm ign-scope |
Don't ignore invalid escape sequences. |
When rewinding the scope of a block macro, forces the compiler to ignore |
|
scope violations. |
|
This can seriously mangle the resulting tree. |
|
.Pq mdoc only |
. |
. |
.It Fl f Ns Ar no-ign-macro |
.It Fl f Ns Cm no-ign-chars |
Do not ignore unknown macros at the start of input lines. |
|
. |
|
.It Fl f Ns Ar no-ign-chars |
|
Do not ignore disallowed characters. |
Do not ignore disallowed characters. |
. |
. |
.It Fl f Ns Ar strict |
.It Fl f Ns Cm no-ign-escape |
|
Do not ignore invalid escape sequences. |
|
. |
|
.It Fl f Ns Cm no-ign-macro |
|
Do not ignore unknown macros at the start of input lines. |
|
. |
|
.It Fl f Ns Cm strict |
Implies |
Implies |
.Fl f Ns Ar no-ign-escape , |
.Fl f Ns Cm no-ign-escape , |
.Fl f Ns Ar no-ign-macro |
.Fl f Ns Cm no-ign-macro , |
and |
and |
.Fl f Ns Ar no-ign-chars . |
.Fl f Ns Cm no-ign-chars . |
. |
|
.It Fl f Ns Ar ign-errors |
|
Don't halt when encountering parse errors. Useful with |
|
.Fl T Ns Ar lint |
|
over a large set of manuals passed on the command line. |
|
.El |
.El |
. |
. |
. |
. |
.Ss Output Options |
.Ss Output Options |
For the time being, only |
For the time being, only |
.Fl T Ns Ar html |
.Fl T Ns Ar html |
accepts output options: |
and |
|
.Fl T Ns Ar xhtml |
|
accept output options: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl O Ns Ar style=style.css |
.It Fl O Ns Cm includes Ns = Ns Ar fmt |
The file |
|
.Ar style.css |
|
is used for an external style-sheet. This must be a valid absolute or |
|
relative URI. |
|
.It Fl O Ns Ar includes=fmt |
|
The string |
The string |
.Ar fmt , |
.Ar fmt , |
for example, |
for example, |
.Ar ../src/%I.html , |
.Ar ../src/%I.html , |
is used as a template for linked header files (usually via the |
is used as a template for linked header files (usually via the |
.Sq \&In |
.Sq \&In |
macro). Instances of |
macro). |
|
Instances of |
.Sq \&%I |
.Sq \&%I |
are replaced with the include filename. The default is not to present a |
are replaced with the include filename. |
|
The default is not to present a |
hyperlink. |
hyperlink. |
.It Fl O Ns Ar man=fmt |
.It Fl O Ns Cm man Ns = Ns Ar fmt |
The string |
The string |
.Ar fmt , |
.Ar fmt , |
for example, |
for example, |
.Ar ../html%S/%N.%S.html , |
.Ar ../html%S/%N.%S.html , |
is used as a template for linked manuals (usually via the |
is used as a template for linked manuals (usually via the |
.Sq \&Xr |
.Sq \&Xr |
macro). Instances of |
macro). |
|
Instances of |
.Sq \&%N |
.Sq \&%N |
and |
and |
.Sq %S |
.Sq %S |
are replaced with the linked manual's name and section, respectively. |
are replaced with the linked manual's name and section, respectively. |
If no section is included, section 1 is assumed. The default is not to |
If no section is included, section 1 is assumed. |
|
The default is not to |
present a hyperlink. |
present a hyperlink. |
|
.It Fl O Ns Cm style Ns = Ns Ar style.css |
|
The file |
|
.Ar style.css |
|
is used for an external style-sheet. |
|
This must be a valid absolute or |
|
relative URI. |
.El |
.El |
. |
. |
. |
. |
Line 269 a body composed of sections and sub-sections, and a fo |
|
Line 297 a body composed of sections and sub-sections, and a fo |
|
The text style of output characters (non-macro characters, punctuation, |
The text style of output characters (non-macro characters, punctuation, |
and white-space) is dictated by context. |
and white-space) is dictated by context. |
.Pp |
.Pp |
White-space is generally stripped from input. This can be changed with |
White-space is generally stripped from input. |
|
This can be changed with |
character escapes (specified in |
character escapes (specified in |
.Xr mandoc_char 7 ) |
.Xr mandoc_char 7 ) |
or literal modes (specified in |
or literal modes (specified in |
Line 312 however, these rules are also applied to macro argumen |
|
Line 341 however, these rules are also applied to macro argumen |
|
. |
. |
.Ss ASCII Output |
.Ss ASCII Output |
Output produced by |
Output produced by |
.Fl T Ns Ar ascii , |
.Fl T Ns Cm ascii , |
which is the default, is rendered in standard 7-bit ASCII documented in |
which is the default, is rendered in standard 7-bit ASCII documented in |
.Xr ascii 7 . |
.Xr ascii 7 . |
.Pp |
.Pp |
|
|
.Sq _ Ns \e[bs] Ns c , |
.Sq _ Ns \e[bs] Ns c , |
where |
where |
.Sq \e[bs] |
.Sq \e[bs] |
is the back-space character number 8. Emboldened characters are rendered as |
is the back-space character number 8. |
|
Emboldened characters are rendered as |
.Sq c Ns \e[bs] Ns c . |
.Sq c Ns \e[bs] Ns c . |
.Pp |
.Pp |
The special characters documented in |
The special characters documented in |
Line 336 exceed this limit. |
|
Line 366 exceed this limit. |
|
. |
. |
.Ss HTML Output |
.Ss HTML Output |
Output produced by |
Output produced by |
.Fl T Ns Ar html |
.Fl T Ns Cm html |
conforms to HTML-4.01 strict. |
conforms to HTML-4.01 strict. |
.Pp |
.Pp |
Font styles and page structure are applied using CSS2. By default, no |
Font styles and page structure are applied using CSS2. |
font style is applied to any text, although CSS2 is hard-coded to format |
By default, no font style is applied to any text, |
|
although CSS2 is hard-coded to format |
the basic structure of output. |
the basic structure of output. |
.Pp |
.Pp |
The |
The |
.Pa example.style.css |
.Pa example.style.css |
file documents the range of styles applied to output and, if used, will |
file documents the range of styles applied to output and, if used, will |
cause rendered documents to appear as they do in |
cause rendered documents to appear as they do in |
.Fl T Ns Ar ascii . |
.Fl T Ns Cm ascii . |
.Pp |
.Pp |
Special characters are rendered in decimal-encoded UTF-8. |
Special characters are rendered in decimal-encoded UTF-8. |
. |
. |
. |
. |
.Ss XHTML Output |
.Ss XHTML Output |
Output produced by |
Output produced by |
.Fl T Ns Ar xhtml |
.Fl T Ns Cm xhtml |
conforms to XHTML-1.0 strict. |
conforms to XHTML-1.0 strict. |
.Pp |
.Pp |
See |
See |
Line 367 output modes are identical. |
|
Line 398 output modes are identical. |
|
To page manuals to the terminal: |
To page manuals to the terminal: |
. |
. |
.Pp |
.Pp |
.D1 % mandoc \-Wall,error \-fstrict mandoc.1 2>&1 | less |
.D1 $ mandoc \-Wall,error \-fstrict mandoc.1 2\*(Gt&1 | less |
.D1 % mandoc mandoc.1 mdoc.3 mdoc.7 | less |
.D1 $ mandoc mandoc.1 mdoc.3 mdoc.7 | less |
. |
. |
.Pp |
.Pp |
To produce HTML manuals with |
To produce HTML manuals with |
.Ar style.css |
.Ar style.css |
as the style-sheet: |
as the style-sheet: |
.Pp |
.Pp |
.D1 % mandoc \-Thtml -Ostyle=style.css mdoc.7 > mdoc.7.html |
.D1 $ mandoc \-Thtml -Ostyle=style.css mdoc.7 \*(Gt mdoc.7.html |
.Pp |
.Pp |
To check over a large set of manuals: |
To check over a large set of manuals: |
. |
. |
.Pp |
.Pp |
.Dl % mandoc \-Tlint \-fign-errors `find /usr/src -name \e*\e.[1-9]` |
.Dl $ mandoc \-Tlint \-fign-errors `find /usr/src -name \e*\e.[1-9]` |
. |
. |
. |
. |
.Sh COMPATIBILITY |
.Sh COMPATIBILITY |
Line 397 Each input and output format is separately noted. |
|
Line 428 Each input and output format is separately noted. |
|
The |
The |
.Sq \e~ |
.Sq \e~ |
special character doesn't produce expected behaviour in |
special character doesn't produce expected behaviour in |
.Fl T Ns Ar ascii . |
.Fl T Ns Cm ascii . |
. |
. |
.It |
.It |
The |
The |
|
|
macros of |
macros of |
.Xr mdoc 7 |
.Xr mdoc 7 |
in |
in |
.Fl T Ns Ar ascii |
.Fl T Ns Cm ascii |
are synonyms, as are \-filled and \-ragged. |
are synonyms, as are \-filled and \-ragged. |
. |
. |
.It |
.It |
|
|
.Xr mdoc 7 |
.Xr mdoc 7 |
macro does not underline when scoped under an |
macro does not underline when scoped under an |
.Sq \&It |
.Sq \&It |
in the FILES section. This behaves correctly in |
in the FILES section. |
|
This behaves correctly in |
.Nm . |
.Nm . |
. |
. |
.It |
.It |
A list or display following |
A list or display following the |
.Sq \&Ss |
.Sq \&Ss |
.Xr mdoc 7 |
.Xr mdoc 7 |
macro in |
macro in |
.Fl T Ns Ar ascii |
.Fl T Ns Cm ascii |
does not assert a prior vertical break, just as it doesn't with |
does not assert a prior vertical break, just as it doesn't with |
.Sq \&Sh . |
.Sq \&Sh . |
. |
. |
|
|
.Sq \&na |
.Sq \&na |
.Xr man 7 |
.Xr man 7 |
macro in |
macro in |
.Fl T Ns Ar ascii |
.Fl T Ns Cm ascii |
has no effect. |
has no effect. |
. |
. |
.It |
.It |
|
|
escape will revert the font to the previous |
escape will revert the font to the previous |
.Sq \ef |
.Sq \ef |
escape, not to the last rendered decoration, which is now dictated by |
escape, not to the last rendered decoration, which is now dictated by |
CSS instead of hard-coded. It also will not span past the current |
CSS instead of hard-coded. |
scope, for the same reason. Note that in |
It also will not span past the current scope, |
|
for the same reason. |
|
Note that in |
.Sx ASCII Output |
.Sx ASCII Output |
mode, this will work fine. |
mode, this will work fine. |
.It |
.It |
Line 484 lists render similarly. |
|
Line 518 lists render similarly. |
|
. |
. |
. |
. |
.Sh SEE ALSO |
.Sh SEE ALSO |
|
.Xr man 7 , |
.Xr mandoc_char 7 , |
.Xr mandoc_char 7 , |
.Xr mdoc 7 , |
.Xr mdoc 7 |
.Xr man 7 |
|
. |
. |
.Sh AUTHORS |
.Sh AUTHORS |
The |
The |
Line 497 utility was written by |
|
Line 531 utility was written by |
|
. |
. |
.Sh CAVEATS |
.Sh CAVEATS |
The |
The |
.Fl T Ns Ar html |
.Fl T Ns Cm html |
and |
and |
.Fl T Ns Ar xhtml |
.Fl T Ns Cm xhtml |
CSS2 styling used for |
CSS2 styling used for |
.Fl m Ns Ar doc |
.Fl m Ns Cm doc |
input lists does not render properly in brain-dead browsers, such as |
input lists does not render properly in older browsers, such as Internet |
Internet Explorer 6 and earlier. |
Explorer 6 and earlier. |
|
. |
.Pp |
.Pp |
In |
In |
.Fl T Ns Ar html |
.Fl T Ns Cm html |
and |
and |
.Fl T Ns Ar xhtml , |
.Fl T Ns Cm xhtml , |
the maximum size of an element attribute is determined by |
the maximum size of an element attribute is determined by |
.Dv BUFSIZ , |
.Dv BUFSIZ , |
which is usually 1024 bytes. Be aware of this when setting long link |
which is usually 1024 bytes. |
formats, e.g., |
Be aware of this when setting long link |
.Fl O Ns Ar style=really/long/link . |
formats such as |
|
.Fl O Ns Cm style Ns = Ns Ar really/long/link . |
|
. |
.Pp |
.Pp |
The |
The |
.Fl T Ns Ar html |
.Fl T Ns Cm html |
and |
and |
.Fl T Ns Ar xhtml |
.Fl T Ns Cm xhtml |
output modes don't render the |
output modes don't render the |
.Sq \es |
.Sq \es |
font size escape documented in |
font size escape documented in |
.Xr mdoc 7 |
.Xr mdoc 7 |
and |
and |
.Xr man 7 . |
.Xr man 7 . |
|
. |
|
.Pp |
|
Nesting elements within next-line element scopes of |
|
.Fl m Ns Cm an , |
|
such as |
|
.Sq br |
|
within an empty |
|
.Sq B , |
|
will confuse |
|
.Fl T Ns Cm html |
|
and |
|
.Fl T Ns Cm xhtml |
|
and cause them to forget the formatting of the prior next-line scope. |
|
. |
|
.Pp |
|
The |
|
.Sq i |
|
macro in |
|
.Fl m Ns Cm an |
|
should italicise all subsequent text if a line argument is not provided. |
|
This behaviour is not implemented. |
|
. |
|
The |
|
.Sq \(aq |
|
control character is an alias for the standard macro control character |
|
and does not emit a line-break as stipulated in GNU troff. |