version 1.37, 2009/09/21 13:06:13 |
version 1.49, 2010/01/07 19:10:09 |
|
|
.Nm mandoc |
.Nm mandoc |
.Op Fl f Ns Ar option... |
.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 V |
.Op Fl W Ns Ar err... |
.Op Fl W Ns Ar err... |
Line 54 Input format. See |
|
Line 54 Input format. See |
|
for available formats. Defaults to |
for available formats. Defaults to |
.Fl m Ns Ar andoc . |
.Fl m Ns Ar andoc . |
. |
. |
.It Fl o Ns Ar format |
.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. |
|
|
.Xr man 7 |
.Xr man 7 |
text from stdin, implying |
text from stdin, implying |
.Fl m Ns Ar andoc , |
.Fl m Ns Ar andoc , |
and prints 78-column backspace-encoded output to stdout as if |
and produces |
.Fl T Ns Ar ascii |
.Fl T Ns Ar ascii |
were provided. |
output. |
. |
. |
.Pp |
.Pp |
.Ex -std mandoc |
.Ex -std mandoc |
. |
. |
. |
. |
.Ss Punctuation and Spacing |
|
If punctuation is set apart from words, such as in the phrase |
|
.Dq to be \&, or not to be , |
|
it's processed by |
|
.Nm |
|
according to the following rules: opening punctuation |
|
.Po |
|
.Sq \&( , |
|
.Sq \&[ , |
|
and |
|
.Sq \&{ |
|
.Pc |
|
is not followed by a space; closing punctuation |
|
.Po |
|
.Sq \&. , |
|
.Sq \&, , |
|
.Sq \&; , |
|
.Sq \&: , |
|
.Sq \&? , |
|
.Sq \&! , |
|
.Sq \&) , |
|
.Sq \&] |
|
and |
|
.Sq \&} |
|
.Pc |
|
is not preceded by whitespace. |
|
. |
|
.Pp |
|
If the input is |
|
.Xr mdoc 7 , |
|
these rules are also applied to macro arguments when appropriate. |
|
. |
|
.Pp |
|
White-space, in non-literal (normal) mode, is stripped from input and |
|
replaced on output by a single space. Thus, if you wish to preserve multiple |
|
spaces, they must be space-escaped or used in a literal display mode, e.g., |
|
.Sq \&Bd \-literal |
|
in |
|
.Xr mdoc 7 . |
|
. |
|
. |
|
.Ss Input Formats |
.Ss Input Formats |
The |
The |
.Nm |
.Nm |
|
|
.Nm |
.Nm |
utility accepts the following |
utility accepts the following |
.Fl T |
.Fl T |
arguments: |
arguments (see |
|
.Sx OUTPUT ) : |
. |
. |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl T Ns Ar ascii |
.It Fl T Ns Ar 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. |
styles. This is the default. See |
|
.Sx ASCII Output . |
. |
. |
.It Fl T Ns Ar html |
.It Fl T Ns Ar html |
Produce strict HTML-4.01 output, with a sane default style. |
Produce strict HTML-4.01 output, with a sane default style. See |
|
.Sx HTML Output . |
. |
. |
.It Fl T Ns Ar tree |
.It Fl T Ns Ar tree |
Produce an indented parse tree. |
Produce an indented parse tree. |
Line 228 When rewinding the scope of a block macro, forces the |
|
Line 190 When rewinding the scope of a block macro, forces the |
|
scope violations. This can seriously mangle the resulting tree. |
scope violations. This can seriously mangle the resulting tree. |
.Pq mdoc only |
.Pq mdoc only |
. |
. |
|
.It Fl f Ns Ar ign-escape |
|
Ignore invalid escape sequences. |
|
This is the default, but the option can be used to override an earlier |
|
.Fl f Ns Ar strict . |
|
. |
.It Fl f Ns Ar no-ign-escape |
.It Fl f Ns Ar no-ign-escape |
Don't ignore invalid escape sequences. |
Don't ignore invalid escape sequences. |
. |
. |
Line 250 Don't halt when encountering parse errors. Useful wit |
|
Line 217 Don't halt when encountering parse errors. Useful wit |
|
over a large set of manuals passed on the command line. |
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 |
is the only mode with output options: |
accepts output options: |
.Bl -tag -width Ds |
.Bl -tag -width Ds |
.It Fl o Ns Ar style=style.css |
.It Fl O Ns Ar style=style.css |
The file |
The file |
.Ar style.css |
.Ar style.css |
is used for an external style-sheet. This must be a valid absolute or |
is used for an external style-sheet. This must be a valid absolute or |
relative URI. |
relative URI. |
.It Fl o Ns Ar base=http://base/ |
.It Fl O Ns Ar includes=fmt |
The URL |
The string |
.Ar http://base/ |
.Ar fmt , |
is used as a base URL for all relative links. This is useful when |
for example, |
linking between documents via the |
.Ar ../src/%I.html , |
|
is used as a template for linked header files (usually via the |
|
.Sq \&In |
|
macro). Instances of |
|
.Sq \&%I |
|
are replaced with the include filename. The default is not to present a |
|
hyperlink. |
|
.It Fl O Ns Ar man=fmt |
|
The string |
|
.Ar fmt , |
|
for example, |
|
.Ar ../html%S/%N.%S.html , |
|
is used as a template for linked manuals (usually via the |
.Sq \&Xr |
.Sq \&Xr |
macro. |
macro). Instances of |
|
.Sq \&%N |
|
and |
|
.Sq %S |
|
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 |
|
present a hyperlink. |
.El |
.El |
. |
. |
|
. |
|
.Sh OUTPUT |
|
This section documents output details of |
|
.Nm . |
|
In general, output conforms to the traditional manual style of a header, |
|
a body composed of sections and sub-sections, and a footer. |
|
.Pp |
|
The text style of output characters (non-macro characters, punctuation, |
|
and white-space) is dictated by context. |
|
.Pp |
|
White-space is generally stripped from input. This can be changed with |
|
character escapes (specified in |
|
.Xr mandoc_char 7 ) |
|
or literal modes (specified in |
|
.Xr mdoc 7 |
|
and |
|
.Xr man 7 ) . |
|
.Pp |
|
If non-macro punctuation is set apart from words, such as in the phrase |
|
.Dq to be \&, or not to be , |
|
it's processed by |
|
.Nm , |
|
regardless of output format, according to the following rules: opening |
|
punctuation |
|
.Po |
|
.Sq \&( , |
|
.Sq \&[ , |
|
and |
|
.Sq \&{ |
|
.Pc |
|
is not followed by a space; closing punctuation |
|
.Po |
|
.Sq \&. , |
|
.Sq \&, , |
|
.Sq \&; , |
|
.Sq \&: , |
|
.Sq \&? , |
|
.Sq \&! , |
|
.Sq \&) , |
|
.Sq \&] |
|
and |
|
.Sq \&} |
|
.Pc |
|
is not preceded by white-space. |
|
. |
|
.Pp |
|
If the input is |
|
.Xr mdoc 7 , |
|
however, these rules are also applied to macro arguments when appropriate. |
|
. |
|
. |
|
.Ss ASCII Output |
|
Output produced by |
|
.Fl T Ns Ar ascii , |
|
which is the default, is rendered in standard 7-bit ASCII documented in |
|
.Xr ascii 7 . |
|
.Pp |
|
Font styles are applied by using back-spaced encoding such that an |
|
underlined character |
|
.Sq c |
|
is rendered as |
|
.Sq _ Ns \e[bs] Ns c , |
|
where |
|
.Sq \e[bs] |
|
is the back-space character number 8. Emboldened characters are rendered as |
|
.Sq c Ns \e[bs] Ns c . |
|
.Pp |
|
The special characters documented in |
|
.Xr mandoc_char 7 |
|
are rendered best-effort in an ASCII equivalent. |
|
.Pp |
|
Output width is limited to 78 visible columns unless literal input lines |
|
exceed this limit. |
|
. |
|
. |
|
.Ss HTML Output |
|
Output produced by |
|
.Fl T Ns Ar html |
|
comforms to HTML-4.01 strict. |
|
.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 |
|
.Pa example.style.css |
|
file documents the range of styles applied to output and, if used, will |
|
cause rendered documents to appear as they do in |
|
.Fl T Ns Ar ascii . |
|
.Pp |
|
Special characters are rendered in decimal-encoded UTF-8. |
|
. |
|
. |
.Sh EXAMPLES |
.Sh EXAMPLES |
To page manuals to the terminal: |
To page manuals to the terminal: |
. |
. |
Line 277 To page manuals to the terminal: |
|
Line 356 To page manuals to the terminal: |
|
.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 |
|
.Ar style.css |
|
as the style-sheet: |
|
.Pp |
|
.D1 % mandoc \-Thtml -Ostyle=style.css mdoc.7 > mdoc.7.html |
|
.Pp |
To check over a large set of manuals: |
To check over a large set of manuals: |
. |
. |
.Pp |
.Pp |
Line 291 compatibility with |
|
Line 376 compatibility with |
|
Each input and output format is separately noted. |
Each input and output format is separately noted. |
. |
. |
. |
. |
.Ss ASCII output |
.Ss ASCII Compatibility |
.Bl -bullet -compact |
.Bl -bullet -compact |
.It |
.It |
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 Ar ascii . |
. |
. |
.It |
.It |
The |
The |
.Sq \&Bd \-literal |
.Sq \&Bd \-literal |
and |
and |
.Sq \&Bd \-unfilled |
.Sq \&Bd \-unfilled |
macros of |
macros of |
.Xr mdoc 7 |
.Xr mdoc 7 |
|
|
are synonyms, as are \-filled and \-ragged. |
are synonyms, as are \-filled and \-ragged. |
. |
. |
.It |
.It |
In |
In |
.Xr groff 1 , |
.Xr groff 1 , |
the |
the |
.Sq \&Pa |
.Sq \&Pa |
|
|
.It |
.It |
Sentences are unilaterally monospaced. |
Sentences are unilaterally monospaced. |
.El |
.El |
.\" SECTION |
. |
|
. |
|
.Ss HTML Compatibility |
|
.Bl -bullet -compact |
|
.It |
|
The |
|
.Sq \efP |
|
escape will revert the font to the previous |
|
.Sq \ef |
|
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 |
|
scope, for the same reason. Note that in |
|
.Sx ASCII Output |
|
mode, this will work fine. |
|
.It |
|
The |
|
.Xr mdoc 7 |
|
.Sq \&Bl \-hang |
|
and |
|
.Sq \&Bl \-tag |
|
list types render similarly (no break following overreached left-hand |
|
side) due to the expressive constraints of HTML. |
|
. |
|
.It |
|
The |
|
.Xr man 7 |
|
.Sq IP |
|
and |
|
.Sq TP |
|
lists render similarly. |
|
.El |
|
. |
|
. |
.Sh SEE ALSO |
.Sh SEE ALSO |
.Xr mandoc_char 7 , |
.Xr mandoc_char 7 , |
.Xr mdoc 7 , |
.Xr mdoc 7 , |
.Xr man 7 |
.Xr man 7 |
.\" SECTION |
. |
.Sh AUTHORS |
.Sh AUTHORS |
The |
The |
.Nm |
.Nm |
utility was written by |
utility was written by |
.An Kristaps Dzonsons Aq kristaps@kth.se . |
.An Kristaps Dzonsons Aq kristaps@kth.se . |
|
. |
|
. |
|
.Sh CAVEATS |
|
The |
|
.Fl T Ns Ar html |
|
CSS2 styling used for |
|
.Fl m Ns Ar doc |
|
input lists does not render properly in brain-dead browsers, such as |
|
Internet Explorer 6 and earlier. |
|
.Pp |
|
In |
|
.Fl T Ns Ar 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, e.g., |
|
.Fl O Ns Ar style=really/long/link . |
|
.Pp |
|
The |
|
.Fl T Ns Ar html |
|
output mode doesn't render the |
|
.Sq \es |
|
font size escape documented in |
|
.Xr mdoc 7 |
|
and |
|
.Xr man 7 . |