version 1.69, 2010/07/04 10:53:04 |
version 1.94, 2011/10/05 21:35:17 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" |
.\" |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" Permission to use, copy, modify, and distribute this software for any |
.\" purpose with or without fee is hereby granted, provided that the above |
.\" purpose with or without fee is hereby granted, provided that the above |
|
|
.Sh SYNOPSIS |
.Sh SYNOPSIS |
.Nm mandoc |
.Nm mandoc |
.Op Fl V |
.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 W Ns Ar err |
.Op Fl W Ns Ar level |
.Op Ar file... |
.Op Ar |
.Sh DESCRIPTION |
.Sh DESCRIPTION |
The |
The |
.Nm |
.Nm |
|
|
manual pages for display. |
manual pages for display. |
The arguments are as follows: |
The arguments are as follows: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl f Ns Ar option |
|
Comma-separated compiler options. |
|
See |
|
.Sx Compiler Options |
|
for details. |
|
.It Fl m Ns Ar format |
.It Fl m Ns Ar format |
Input format. |
Input format. |
See |
See |
|
|
.Fl T Ns Cm ascii . |
.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 level |
Comma-separated warning options. |
Specify the minimum message |
Use |
.Ar level |
|
to be reported on the standard error output and to affect the exit status. |
|
The |
|
.Ar level |
|
can be |
|
.Cm warning , |
|
.Cm error , |
|
or |
|
.Cm fatal . |
|
The default is |
|
.Fl W Ns Cm fatal ; |
.Fl W Ns Cm all |
.Fl W Ns Cm all |
to print warnings, |
is an alias for |
.Fl W Ns Cm error |
.Fl W Ns Cm warning . |
for warnings to be considered errors and cause utility |
See |
termination. |
.Sx EXIT STATUS |
Multiple |
and |
.Fl W |
.Sx DIAGNOSTICS |
arguments may be comma-separated, such as |
for details. |
.Fl W Ns Cm error , Ns Cm all . |
.Pp |
|
The special option |
|
.Fl W Ns Cm stop |
|
tells |
|
.Nm |
|
to exit after parsing a file that causes warnings or errors of at least |
|
the requested level. |
|
No formatted output will be produced from that file. |
|
If both a |
|
.Ar level |
|
and |
|
.Cm stop |
|
are requested, they can be joined with a comma, for example |
|
.Fl W Ns Cm error , Ns Cm stop . |
.It Ar file |
.It Ar file |
Read input from zero or more files. |
Read input from zero or more files. |
If unspecified, reads from stdin. |
If unspecified, reads from stdin. |
Line 91 text from stdin, implying |
|
Line 108 text from stdin, implying |
|
and produces |
and produces |
.Fl T Ns Cm ascii |
.Fl T Ns Cm ascii |
output. |
output. |
.Pp |
|
.Ex -std mandoc |
|
.Ss Input Formats |
.Ss Input Formats |
The |
The |
.Nm |
.Nm |
|
|
or |
or |
.Fl m Ns Cm an |
.Fl m Ns Cm an |
is specified, then this format is used exclusively. |
is specified, then this format is used exclusively. |
.Ss Compiler Options |
|
Default |
|
.Xr mdoc 7 |
|
and |
|
.Xr man 7 |
|
compilation behaviour may be overridden with the |
|
.Fl f |
|
flag. |
|
.Bl -tag -width Ds |
|
.It Fl f Ns Cm ign-errors |
|
When parsing multiple files, don't halt when one errors out. |
|
Useful with |
|
.Fl T Ns Cm lint |
|
over a large set of manuals passed on the command line. |
|
.It Fl f Ns Cm ign-escape |
|
Ignore invalid escape sequences. |
|
This is the default, but the option can be used to override an earlier |
|
.Fl f Ns Cm strict . |
|
.It Fl f Ns Cm ign-scope |
|
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 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 |
|
.Fl f Ns Cm no-ign-escape |
|
and |
|
.Fl f Ns Cm no-ign-macro . |
|
.El |
|
.Ss Output Formats |
.Ss Output Formats |
The |
The |
.Nm |
.Nm |
utility accepts the following |
utility accepts the following |
.Fl T |
.Fl T |
arguments, which correspond to output modes: |
arguments, which correspond to output modes: |
.Bl -tag -width Ds |
.Bl -tag -width "-Tlocale" |
.It Fl T Ns Cm ascii |
.It Fl T Ns Cm ascii |
Produce 7-bit ASCII output, backspace-encoded for bold and underline |
Produce 7-bit ASCII output. |
styles. |
|
This is the default. |
This is the default. |
See |
See |
.Sx ASCII Output . |
.Sx ASCII Output . |
.It Fl T Ns Cm html |
.It Fl T Ns Cm html |
Produce strict HTML-4.01 output, with a sane default style. |
Produce strict CSS1/HTML-4.01 output. |
See |
See |
.Sx HTML Output . |
.Sx HTML Output . |
.It Fl T Ns Cm lint |
.It Fl T Ns Cm lint |
Parse only: produce no output. |
Parse only: produce no output. |
Implies |
Implies |
.Fl W Ns Cm all |
.Fl W Ns Cm warning . |
and |
.It Fl T Ns Cm locale |
.Fl f Ns Cm strict . |
Encode output using the current locale. |
|
See |
|
.Sx Locale Output . |
|
.It Fl T Ns Cm man |
|
Produce output in |
|
.Xr man 7 |
|
format; only useful when applied to |
|
.Fl m Ns Cm doc |
|
input. |
|
.It Fl T Ns Cm pdf |
|
Produce PDF output. |
|
See |
|
.Sx PDF Output . |
.It Fl T Ns Cm ps |
.It Fl T Ns Cm ps |
Produce PostScript output. |
Produce PostScript output. |
See |
See |
.Sx PostScript Output . |
.Sx PostScript Output . |
.It Fl T Ns Cm tree |
.It Fl T Ns Cm tree |
Produce an indented parse tree. |
Produce an indented parse tree. |
|
.It Fl T Ns Cm utf8 |
|
Encode output in the UTF\-8 multi-byte format. |
|
See |
|
.Sx UTF\-8 Output . |
.It Fl T Ns Cm xhtml |
.It Fl T Ns Cm xhtml |
Produce strict XHTML-1.0 output, with a sane default style. |
Produce strict CSS1/XHTML-1.0 output. |
See |
See |
.Sx XHTML Output . |
.Sx XHTML Output . |
.El |
.El |
Line 226 Emboldened characters are rendered as |
|
Line 223 Emboldened characters are rendered as |
|
The special characters documented in |
The special characters documented in |
.Xr mandoc_char 7 |
.Xr mandoc_char 7 |
are rendered best-effort in an ASCII equivalent. |
are rendered best-effort in an ASCII equivalent. |
|
If no equivalent is found, |
|
.Sq \&? |
|
is used instead. |
.Pp |
.Pp |
Output width is limited to 78 visible columns unless literal input lines |
Output width is limited to 78 visible columns unless literal input lines |
exceed this limit. |
exceed this limit. |
Line 244 Output produced by |
|
Line 244 Output produced by |
|
.Fl T Ns Cm 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 style is applied to any text, |
|
although CSS2 is hard-coded to format |
|
the basic structure of output. |
|
.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 style-sheet classes available for customising output. |
cause rendered documents to appear as they do in |
If a style-sheet is not specified with |
.Fl T Ns Cm ascii . |
.Fl O Ns Ar style , |
|
.Fl T Ns Cm html |
|
defaults to simple output readable in any graphical or text-based web |
|
browser. |
.Pp |
.Pp |
Special characters are rendered in decimal-encoded UTF-8. |
Special characters are rendered in decimal-encoded UTF\-8. |
.Pp |
.Pp |
The following |
The following |
.Fl O |
.Fl O |
arguments are accepted: |
arguments are accepted: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
|
.It Cm fragment |
|
Do not emit doctype, html, and body elements. |
|
The |
|
.Cm style |
|
argument shall be unused. |
|
This is useful when embedding manual content within existing documents. |
.It Cm includes Ns = Ns Ar fmt |
.It Cm includes Ns = Ns Ar fmt |
The string |
The string |
.Ar fmt , |
.Ar fmt , |
Line 297 is used for an external style-sheet. |
|
Line 301 is used for an external style-sheet. |
|
This must be a valid absolute or |
This must be a valid absolute or |
relative URI. |
relative URI. |
.El |
.El |
|
.Ss Locale Output |
|
Locale-depending output encoding is triggered with |
|
.Fl T Ns Cm locale . |
|
This option is not available on all systems: systems without locale |
|
support, or those whose internal representation is not natively UCS-4, |
|
will fall back to |
|
.Fl T Ns Cm ascii . |
|
See |
|
.Sx ASCII Output |
|
for font style specification and available command-line arguments. |
|
.Ss PDF Output |
|
PDF-1.1 output may be generated by |
|
.Fl T Ns Cm pdf . |
|
See |
|
.Sx PostScript Output |
|
for |
|
.Fl O |
|
arguments and defaults. |
.Ss PostScript Output |
.Ss PostScript Output |
PostScript |
PostScript |
.Qq Adobe-3.0 |
.Qq Adobe-3.0 |
Level-2 pages may be generated by |
Level-2 pages may be generated by |
.Fl T Ns Cm ps . |
.Fl T Ns Cm ps . |
Output pages default to letter sized and are rendered in the Times font |
Output pages default to letter sized and are rendered in the Times font |
family, 11-point. Margins are calculated as the maximum of either space |
family, 11-point. |
left by page width minus text width (65 |
Margins are calculated as 1/9 the page length and width. |
.Sq m |
Line-height is 1.4m. |
characters), or given default margins of 2 cm. |
|
.Pp |
.Pp |
Special characters are rendered as in |
Special characters are rendered as in |
.Sx ASCII Output . |
.Sx ASCII Output . |
Line 332 If an unknown value is encountered, |
|
Line 353 If an unknown value is encountered, |
|
.Ar letter |
.Ar letter |
is used. |
is used. |
.El |
.El |
|
.Ss UTF\-8 Output |
|
Use |
|
.Fl T Ns Cm utf8 |
|
to force a UTF\-8 locale. |
|
See |
|
.Sx Locale Output |
|
for details and options. |
.Ss XHTML Output |
.Ss XHTML Output |
Output produced by |
Output produced by |
.Fl T Ns Cm xhtml |
.Fl T Ns Cm xhtml |
|
|
.Sx HTML Output |
.Sx HTML Output |
for details; beyond generating XHTML tags instead of HTML tags, these |
for details; beyond generating XHTML tags instead of HTML tags, these |
output modes are identical. |
output modes are identical. |
|
.Sh EXIT STATUS |
|
The |
|
.Nm |
|
utility exits with one of the following values, controlled by the message |
|
.Ar level |
|
associated with the |
|
.Fl W |
|
option: |
|
.Pp |
|
.Bl -tag -width Ds -compact |
|
.It 0 |
|
No warnings or errors occurred, or those that did were ignored because |
|
they were lower than the requested |
|
.Ar level . |
|
.It 2 |
|
At least one warning occurred, but no error, and |
|
.Fl W Ns Cm warning |
|
was specified. |
|
.It 3 |
|
At least one parsing error occurred, but no fatal error, and |
|
.Fl W Ns Cm error |
|
or |
|
.Fl W Ns Cm warning |
|
was specified. |
|
.It 4 |
|
A fatal parsing error occurred. |
|
.It 5 |
|
Invalid command line arguments were specified. |
|
No input files have been read. |
|
.It 6 |
|
An operating system error occurred, for example memory exhaustion or an |
|
error accessing input files. |
|
Such errors cause |
|
.Nm |
|
to exit at once, possibly in the middle of parsing or formatting a file. |
|
.El |
|
.Pp |
|
Note that selecting |
|
.Fl T Ns Cm lint |
|
output mode implies |
|
.Fl W Ns Cm warning . |
.Sh EXAMPLES |
.Sh EXAMPLES |
To page manuals to the terminal: |
To page manuals to the terminal: |
.Pp |
.Pp |
.D1 $ mandoc \-Wall,error \-fstrict mandoc.1 2\*(Gt&1 | less |
.Dl $ mandoc \-Wall,stop mandoc.1 2\*(Gt&1 | less |
.D1 $ mandoc mandoc.1 mdoc.3 mdoc.7 | less |
.Dl $ 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 \*(Gt mdoc.7.html |
.Dl $ 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 `find /usr/src -name \e*\e.[1-9]` |
.Pp |
.Pp |
To produce a series of PostScript manuals for A4 paper: |
To produce a series of PostScript manuals for A4 paper: |
.Pp |
.Pp |
.D1 $ mandoc \-Tps \-Opaper=a4 mdoc.7 man.7 \*(Gt manuals.ps |
.Dl $ mandoc \-Tps \-Opaper=a4 mdoc.7 man.7 \*(Gt manuals.ps |
|
.Pp |
|
Convert a modern |
|
.Xr mdoc 7 |
|
manual to the older |
|
.Xr man 7 |
|
format, for use on systems lacking an |
|
.Xr mdoc 7 |
|
parser: |
|
.Pp |
|
.Dl $ mandoc \-Tman foo.mdoc \*(Gt foo.man |
|
.Sh DIAGNOSTICS |
|
Standard error messages reporting parsing errors are prefixed by |
|
.Pp |
|
.Sm off |
|
.D1 Ar file : line : column : \ level : |
|
.Sm on |
|
.Pp |
|
where the fields have the following meanings: |
|
.Bl -tag -width "column" |
|
.It Ar file |
|
The name of the input file causing the message. |
|
.It Ar line |
|
The line number in that input file. |
|
Line numbering starts at 1. |
|
.It Ar column |
|
The column number in that input file. |
|
Column numbering starts at 1. |
|
If the issue is caused by a word, the column number usually |
|
points to the first character of the word. |
|
.It Ar level |
|
The message level, printed in capital letters. |
|
.El |
|
.Pp |
|
Message levels have the following meanings: |
|
.Bl -tag -width "warning" |
|
.It Cm fatal |
|
The parser is unable to parse a given input file at all. |
|
No formatted output is produced from that input file. |
|
.It Cm error |
|
An input file contains syntax that cannot be safely interpreted, |
|
either because it is invalid or because |
|
.Nm |
|
does not implement it yet. |
|
By discarding part of the input or inserting missing tokens, |
|
the parser is able to continue, and the error does not prevent |
|
generation of formatted output, but typically, preparing that |
|
output involves information loss, broken document structure |
|
or unintended formatting. |
|
.It Cm warning |
|
An input file uses obsolete, discouraged or non-portable syntax. |
|
All the same, the meaning of the input is unambiguous and a correct |
|
rendering can be produced. |
|
Documents causing warnings may render poorly when using other |
|
formatting tools instead of |
|
.Nm . |
|
.El |
|
.Pp |
|
Messages of the |
|
.Cm warning |
|
and |
|
.Cm error |
|
levels are hidden unless their level, or a lower level, is requested using a |
|
.Fl W |
|
option or |
|
.Fl T Ns Cm lint |
|
output mode. |
|
.Pp |
|
The |
|
.Nm |
|
utility may also print messages related to invalid command line arguments |
|
or operating system errors, for example when memory is exhausted or |
|
input files cannot be read. |
|
Such messages do not carry the prefix described above. |
.Sh COMPATIBILITY |
.Sh COMPATIBILITY |
This section summarises |
This section summarises |
.Nm |
.Nm |
compatibility with |
compatibility with GNU troff. |
.Xr groff 1 . |
|
Each input and output format is separately noted. |
Each input and output format is separately noted. |
.Ss ASCII Compatibility |
.Ss ASCII Compatibility |
.Bl -bullet -compact |
.Bl -bullet -compact |
.It |
.It |
The |
Unrenderable unicode codepoints specified with |
.Sq \e~ |
.Sq \e[uNNNN] |
special character doesn't produce expected behaviour in |
escapes are printed as |
.Fl T Ns Cm ascii . |
.Sq \&? |
|
in mandoc. |
|
In GNU troff, these raise an error. |
.It |
.It |
The |
The |
.Sq \&Bd \-literal |
.Sq \&Bd \-literal |
|
|
.Fl T Ns Cm ascii |
.Fl T Ns Cm ascii |
are synonyms, as are \-filled and \-ragged. |
are synonyms, as are \-filled and \-ragged. |
.It |
.It |
In |
In historic GNU troff, the |
.Xr groff 1 , |
|
the |
|
.Sq \&Pa |
.Sq \&Pa |
.Xr mdoc 7 |
.Xr mdoc 7 |
macro does not underline when scoped under an |
macro does not underline when scoped under an |
|
|
has no effect. |
has no effect. |
.It |
.It |
Words aren't hyphenated. |
Words aren't hyphenated. |
.It |
|
In normal mode (not a literal block), blocks of spaces aren't preserved, |
|
so double spaces following sentence closure are reduced to a single space; |
|
.Xr groff 1 |
|
retains spaces. |
|
.It |
|
Sentences are unilaterally monospaced. |
|
.El |
.El |
.Ss HTML/XHTML Compatibility |
.Ss HTML/XHTML Compatibility |
.Bl -bullet -compact |
.Bl -bullet -compact |
|
|
lists render similarly. |
lists render similarly. |
.El |
.El |
.Sh SEE ALSO |
.Sh SEE ALSO |
|
.Xr eqn 7 , |
.Xr man 7 , |
.Xr man 7 , |
.Xr mandoc_char 7 , |
.Xr mandoc_char 7 , |
.Xr mdoc 7 |
.Xr mdoc 7 , |
|
.Xr roff 7 , |
|
.Xr tbl 7 |
.Sh AUTHORS |
.Sh AUTHORS |
The |
The |
.Nm |
.Nm |
utility was written by |
utility was written by |
.An Kristaps Dzonsons Aq kristaps@bsd.lv . |
.An Kristaps Dzonsons , |
|
.Mt kristaps@bsd.lv . |
.Sh CAVEATS |
.Sh CAVEATS |
The |
|
.Fl T Ns Cm html |
|
and |
|
.Fl T Ns Cm xhtml |
|
CSS2 styling used for |
|
.Fl m Ns Cm doc |
|
input lists does not render properly in older browsers, such as Internet |
|
Explorer 6 and earlier. |
|
.Pp |
|
In |
In |
.Fl T Ns Cm html |
.Fl T Ns Cm html |
and |
and |
Line 479 Be aware of this when setting long link |
|
Line 608 Be aware of this when setting long link |
|
formats such as |
formats such as |
.Fl O Ns Cm style Ns = Ns Ar really/long/link . |
.Fl O Ns Cm style Ns = Ns Ar really/long/link . |
.Pp |
.Pp |
The |
|
.Fl T Ns Cm html |
|
and |
|
.Fl T Ns Cm xhtml |
|
output modes don't render the |
|
.Sq \es |
|
font size escape documented in |
|
.Xr mdoc 7 |
|
and |
|
.Xr man 7 . |
|
.Pp |
|
Nesting elements within next-line element scopes of |
Nesting elements within next-line element scopes of |
.Fl m Ns Cm an , |
.Fl m Ns Cm an , |
such as |
such as |
|
|
.Fl T Ns Cm xhtml |
.Fl T Ns Cm xhtml |
and cause them to forget the formatting of the prior next-line scope. |
and cause them to forget the formatting of the prior next-line scope. |
.Pp |
.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 |
The |
.Sq \(aq |
.Sq \(aq |
control character is an alias for the standard macro control character |
control character is an alias for the standard macro control character |