version 1.161, 2015/09/26 12:56:04 |
version 1.178, 2017/03/08 19:40:59 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" Copyright (c) 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org> |
.\" Copyright (c) 2012, 2014-2017 Ingo Schwarze <schwarze@openbsd.org> |
.\" |
.\" |
.\" 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 |
Line 75 This overrides any earlier |
|
Line 75 This overrides any earlier |
|
and |
and |
.Fl l |
.Fl l |
options. |
options. |
|
.It Fl h |
|
Display only the SYNOPSIS lines. |
|
Implies |
|
.Fl c . |
.It Fl I Cm os Ns = Ns Ar name |
.It Fl I Cm os Ns = Ns Ar name |
Override the default operating system |
Override the default operating system |
.Ar name |
.Ar name |
|
|
.Xr man 7 |
.Xr man 7 |
.Sq \&TH |
.Sq \&TH |
macro. |
macro. |
.It Fl h |
|
Display only the SYNOPSIS lines. |
|
Implies |
|
.Fl c . |
|
.It Fl K Ar encoding |
.It Fl K Ar encoding |
Specify the input encoding. |
Specify the input encoding. |
The supported |
The supported |
|
|
.Cm iso-8859-1 , |
.Cm iso-8859-1 , |
and |
and |
.Cm utf-8 . |
.Cm utf-8 . |
If not specified, autodetection uses the first match: |
If not specified, autodetection uses the first match in the following |
.Bl -tag -width iso-8859-1 |
list: |
.It Cm utf-8 |
.Bl -enum |
if the first three bytes of the input file |
.It |
are the UTF-8 byte order mark (BOM, 0xefbbbf) |
If the first three bytes of the input file are the UTF-8 byte order |
.It Ar encoding |
mark (BOM, 0xefbbbf), input is interpreted as |
if the first or second line of the input file matches the |
.Cm utf-8 . |
|
.It |
|
If the first or second line of the input file matches the |
.Sy emacs |
.Sy emacs |
mode line format |
mode line format |
.Pp |
.Pp |
.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- |
.D1 .\e" -*- Oo ...; Oc coding: Ar encoding ; No -*- |
.It Cm utf-8 |
.Pp |
if the first non-ASCII byte in the file introduces a valid UTF-8 sequence |
then input is interpreted according to |
.It Cm iso-8859-1 |
.Ar encoding . |
otherwise |
.It |
|
If the first non-ASCII byte in the file introduces a valid UTF-8 |
|
sequence, input is interpreted as |
|
.Cm utf-8 . |
|
.It |
|
Otherwise, input is interpreted as |
|
.Cm iso-8859-1 . |
.El |
.El |
.It Fl k |
.It Fl k |
A synonym for |
A synonym for |
|
|
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 "-T locale" |
.Bl -tag -width "-T markdown" |
.It Fl T Cm ascii |
.It Fl T Cm ascii |
Produce 7-bit ASCII output. |
Produce 7-bit ASCII output. |
See |
See |
|
|
format output. |
format output. |
See |
See |
.Sx Man Output . |
.Sx Man Output . |
|
.It Fl T Cm markdown |
|
Produce output in |
|
.Sy markdown |
|
format. |
|
See |
|
.Sx Markdown Output . |
.It Fl T Cm pdf |
.It Fl T Cm pdf |
Produce PDF output. |
Produce PDF output. |
See |
See |
Line 349 Equations rendered from |
|
Line 363 Equations rendered from |
|
blocks use MathML. |
blocks use MathML. |
.Pp |
.Pp |
The |
The |
.Pa example.style.css |
.Pa mandoc.css |
file documents style-sheet classes available for customising output. |
file documents style-sheet classes available for customising output. |
If a style-sheet is not specified with |
If a style-sheet is not specified with |
.Fl O Cm style , |
.Fl O Cm style , |
Line 443 The parser is also run, and as usual, the |
|
Line 457 The parser is also run, and as usual, the |
|
level controls which |
level controls which |
.Sx DIAGNOSTICS |
.Sx DIAGNOSTICS |
are displayed before copying the input to the output. |
are displayed before copying the input to the output. |
|
.Ss Markdown Output |
|
Translate |
|
.Xr mdoc 7 |
|
input to the |
|
.Sy markdown |
|
format conforming to |
|
.Lk http://daringfireball.net/projects/markdown/syntax.text\ |
|
"John Gruber's 2004 specification" . |
|
The output also almost conforms to the |
|
.Lk http://commonmark.org/ CommonMark |
|
specification. |
|
.Pp |
|
The character set used for the markdown output is ASCII. |
|
Non-ASCII characters are encoded as HTML entities. |
|
Since that is not possible in literal font contexts, because these |
|
are rendered as code spans and code blocks in the markdown output, |
|
non-ASCII characters are transliterated to ASCII approximations in |
|
these contexts. |
|
.Pp |
|
Markdown is a very weak markup language, so all semantic markup is |
|
lost, and even part of the presentational markup may be lost. |
|
Do not use this as an intermediate step in converting to HTML; |
|
instead, use |
|
.Fl T Cm html |
|
directly. |
|
.Pp |
|
The |
|
.Xr man 7 , |
|
.Xr tbl 7 , |
|
and |
|
.Xr eqn 7 |
|
input languages are not supported by |
|
.Fl T Cm markdown |
|
output mode. |
.Ss PDF Output |
.Ss PDF Output |
PDF-1.1 output may be generated by |
PDF-1.1 output may be generated by |
.Fl T Cm pdf . |
.Fl T Cm pdf . |
|
|
.Fl T Cm tree |
.Fl T Cm tree |
to show a human readable representation of the syntax tree. |
to show a human readable representation of the syntax tree. |
It is useful for debugging the source code of manual pages. |
It is useful for debugging the source code of manual pages. |
The exact format is subject to change, don't write parsers for it. |
The exact format is subject to change, so don't write parsers for it. |
Each output line shows one syntax tree node. |
.Pp |
|
The first paragraph shows meta data found in the |
|
.Xr mdoc 7 |
|
prologue, on the |
|
.Xr man 7 |
|
.Ic \&TH |
|
line, or the fallbacks used. |
|
.Pp |
|
In the tree dump, each output line shows one syntax tree node. |
Child nodes are indented with respect to their parent node. |
Child nodes are indented with respect to their parent node. |
The columns are: |
The columns are: |
.Pp |
.Pp |
Line 506 The columns are: |
|
Line 562 The columns are: |
|
.It |
.It |
For macro nodes, the macro name; for text and |
For macro nodes, the macro name; for text and |
.Xr tbl 7 |
.Xr tbl 7 |
nodes, the content. There is a special format for |
nodes, the content. |
|
There is a special format for |
.Xr eqn 7 |
.Xr eqn 7 |
nodes. |
nodes. |
.It |
.It |
Line 528 The input column number (starting at one). |
|
Line 585 The input column number (starting at one). |
|
A closing parenthesis if the node is a closing delimiter. |
A closing parenthesis if the node is a closing delimiter. |
.It |
.It |
A full stop if the node ends a sentence. |
A full stop if the node ends a sentence. |
|
.It |
|
BROKEN if the node is a block broken by another block. |
|
.It |
|
NOSRC if the node is not in the input file, |
|
but automatically generated from macros. |
|
.It |
|
NOPRT if the node is not supposed to generate output |
|
for any output format. |
.El |
.El |
.El |
.El |
|
.Pp |
|
The following |
|
.Fl O |
|
argument is accepted: |
|
.Bl -tag -width Ds |
|
.It Cm noval |
|
Skip validation and show the unvalidated syntax tree. |
|
This can help to find out whether a given behaviour is caused by |
|
the parser or by the validator. |
|
Meta data is not available in this case. |
|
.El |
.Sh ENVIRONMENT |
.Sh ENVIRONMENT |
.Bl -tag -width MANPAGER |
.Bl -tag -width MANPAGER |
.It Ev MANPAGER |
.It Ev MANPAGER |
Line 600 To page manuals to the terminal: |
|
Line 676 To page manuals to the terminal: |
|
.Dl $ 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 |
.Pa mandoc.css |
as the style-sheet: |
as the style-sheet: |
.Pp |
.Pp |
.Dl $ mandoc \-T html -O style=style.css mdoc.7 \*(Gt mdoc.7.html |
.Dl $ mandoc \-T html -O style=mandoc.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 |
Line 808 This may confuse |
|
Line 884 This may confuse |
|
.Xr makewhatis 8 |
.Xr makewhatis 8 |
and |
and |
.Xr apropos 1 . |
.Xr apropos 1 . |
.It Sy "NAME section without name" |
.It Sy "NAME section without Nm before Nd" |
.Pq mdoc |
.Pq mdoc |
The NAME section does not contain any |
The NAME section does not contain any |
.Ic \&Nm |
.Ic \&Nm |
child macro. |
child macro before the first |
|
.Ic \&Nd |
|
macro. |
.It Sy "NAME section without description" |
.It Sy "NAME section without description" |
.Pq mdoc |
.Pq mdoc |
The NAME section lacks the mandatory |
The NAME section lacks the mandatory |
Line 829 The NAME section contains plain text or macros other t |
|
Line 907 The NAME section contains plain text or macros other t |
|
.Ic \&Nm |
.Ic \&Nm |
and |
and |
.Ic \&Nd . |
.Ic \&Nd . |
|
.It Sy "missing comma before name" |
|
.Pq mdoc |
|
The NAME section contains an |
|
.Ic \&Nm |
|
macro that is neither the first one nor preceded by a comma. |
.It Sy "missing description line, using \(dq\(dq" |
.It Sy "missing description line, using \(dq\(dq" |
.Pq mdoc |
.Pq mdoc |
The |
The |
.Ic \&Nd |
.Ic \&Nd |
macro lacks the required argument. |
macro lacks the required argument. |
The title line of the manual will end after the dash. |
The title line of the manual will end after the dash. |
|
.It Sy "description line outside NAME section" |
|
.Pq mdoc |
|
An |
|
.Ic \&Nd |
|
macro appears outside the NAME section. |
|
The arguments are printed anyway and the following text is used for |
|
.Xr apropos 1 , |
|
but none of that behaviour is portable. |
.It Sy "sections out of conventional order" |
.It Sy "sections out of conventional order" |
.Pq mdoc |
.Pq mdoc |
A standard section occurs after another section it usually precedes. |
A standard section occurs after another section it usually precedes. |
Line 1146 macro is immediately followed by an |
|
Line 1237 macro is immediately followed by an |
|
.Ic \&Re |
.Ic \&Re |
macro on the next input line. |
macro on the next input line. |
Such an empty block does not produce any output. |
Such an empty block does not produce any output. |
|
.It Sy "missing section argument" |
|
.Pq mdoc |
|
An |
|
.Ic \&Xr |
|
macro lacks its second, section number argument. |
|
The first argument, i.e. the name, is printed, but without subsequent |
|
parentheses. |
.It Sy "missing -std argument, adding it" |
.It Sy "missing -std argument, adding it" |
.Pq mdoc |
.Pq mdoc |
An |
An |
Line 1328 it is hard to predict which tab stop position the tab |
|
Line 1426 it is hard to predict which tab stop position the tab |
|
Whitespace at the end of input lines is almost never semantically |
Whitespace at the end of input lines is almost never semantically |
significant \(em but in the odd case where it might be, it is |
significant \(em but in the odd case where it might be, it is |
extremely confusing when reviewing and maintaining documents. |
extremely confusing when reviewing and maintaining documents. |
|
.It Sy "new sentence, new line" |
|
.Pq mdoc |
|
A new sentence starts in the middle of a text line. |
|
Start it on a new input line to help formatters produce correct spacing. |
.It Sy "bad comment style" |
.It Sy "bad comment style" |
.Pq roff |
.Pq roff |
Comment lines start with a dot, a backslash, and a double-quote character. |
Comment lines start with a dot, a backslash, and a double-quote character. |
Line 1599 By requesting the inclusion of a sensitive file, a mal |
|
Line 1701 By requesting the inclusion of a sensitive file, a mal |
|
might otherwise trick a privileged user into inadvertently displaying |
might otherwise trick a privileged user into inadvertently displaying |
the file on the screen, revealing the file content to bystanders. |
the file on the screen, revealing the file content to bystanders. |
The argument is ignored including the file name following it. |
The argument is ignored including the file name following it. |
|
.It Sy "skipping display without arguments" |
|
.Pq mdoc |
|
A |
|
.Ic \&Bd |
|
block macro does not have any arguments. |
|
The block is discarded, and the block content is displayed in |
|
whatever mode was active before the block. |
.It Sy "missing list type, using -item" |
.It Sy "missing list type, using -item" |
.Pq mdoc |
.Pq mdoc |
A |
A |
Line 1607 macro fails to specify the list type. |
|
Line 1716 macro fails to specify the list type. |
|
.It Sy "missing manual name, using \(dq\(dq" |
.It Sy "missing manual name, using \(dq\(dq" |
.Pq mdoc |
.Pq mdoc |
The first call to |
The first call to |
.Ic \&Nm |
.Ic \&Nm , |
lacks the required argument. |
or any call in the NAME section, lacks the required argument. |
.It Sy "uname(3) system call failed, using UNKNOWN" |
.It Sy "uname(3) system call failed, using UNKNOWN" |
.Pq mdoc |
.Pq mdoc |
The |
The |
Line 1796 as if they were a text line. |
|
Line 1905 as if they were a text line. |
|
.Xr mdoc 7 , |
.Xr mdoc 7 , |
.Xr roff 7 , |
.Xr roff 7 , |
.Xr tbl 7 |
.Xr tbl 7 |
|
.Sh HISTORY |
|
The |
|
.Nm |
|
utility first appeared in |
|
.Ox 4.8 . |
|
The option |
|
.Fl I |
|
appeared in |
|
.Ox 5.2 , |
|
and |
|
.Fl aCcfhKklMSsw |
|
in |
|
.Ox 5.7 . |
.Sh AUTHORS |
.Sh AUTHORS |
.An -nosplit |
.An -nosplit |
The |
The |
Line 1804 utility was written by |
|
Line 1926 utility was written by |
|
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv |
.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv |
and is maintained by |
and is maintained by |
.An Ingo Schwarze Aq Mt schwarze@openbsd.org . |
.An Ingo Schwarze Aq Mt schwarze@openbsd.org . |
.Sh BUGS |
|
In |
|
.Fl T Cm html , |
|
the maximum size of an element attribute is determined by |
|
.Dv BUFSIZ , |
|
which is usually 1024 bytes. |
|
Be aware of this when setting long link |
|
formats such as |
|
.Fl O Cm style Ns = Ns Ar really/long/link . |
|