1 .\" $Id: mandoc.1,v 1.59 2010/04/13 05:26:49 kristaps Exp $
3 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>
5 .\" Permission to use, copy, modify, and distribute this software for any
6 .\" purpose with or without fee is hereby granted, provided that the above
7 .\" copyright notice and this permission notice appear in all copies.
9 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 .Dd $Mdocdate: April 13 2010 $
22 .Nd format and display UNIX manuals
37 manual pages for display.
38 The arguments are as follows:
41 Comma-separated compiler options.
49 for available formats.
53 Comma-separated output options.
61 for available formats.
65 Print version and exit.
67 Comma-separated warning options.
72 for warnings to be considered errors and cause utility
76 arguments may be comma-separated, such as
77 .Fl W Ns Cm error , Ns Cm all .
79 Read input from zero or more files.
80 If unspecified, reads from stdin.
81 If multiple files are specified,
83 will halt with the first failed parse.
92 text from stdin, implying
117 should only be used for legacy manuals.
121 which is also the default, determines encoding on-the-fly: if the first
128 parser is used; otherwise, the
133 files are specified with
135 each has its file-type determined this way.
136 If multiple files are
141 is specified, then this format is used exclusively.
145 utility accepts the following
151 Produce 7-bit ASCII output, backspace-encoded for bold and underline
157 Produce strict HTML-4.01 output, with a sane default style.
161 Parse only: produce no output.
167 Produce an indented parse tree.
169 Produce strict XHTML-1.0 output, with a sane default style.
174 If multiple input files are specified, these will be processed by the
175 corresponding filter in-order.
177 Default compiler behaviour may be overridden with the
181 .It Fl f Ns Cm ign-errors
182 When parsing multiple files, don't halt when one errors out.
185 over a large set of manuals passed on the command line.
186 .It Fl f Ns Cm ign-escape
187 Ignore invalid escape sequences.
188 This is the default, but the option can be used to override an earlier
190 .It Fl f Ns Cm ign-scope
191 When rewinding the scope of a block macro, forces the compiler to ignore
193 This can seriously mangle the resulting tree.
195 .It Fl f Ns Cm no-ign-chars
196 Do not ignore disallowed characters.
197 .It Fl f Ns Cm no-ign-escape
198 Do not ignore invalid escape sequences.
199 .It Fl f Ns Cm no-ign-macro
200 Do not ignore unknown macros at the start of input lines.
201 .It Fl f Ns Cm strict
203 .Fl f Ns Cm no-ign-escape ,
204 .Fl f Ns Cm no-ign-macro ,
206 .Fl f Ns Cm no-ign-chars .
209 For the time being, only
213 accept output options:
215 .It Fl O Ns Cm includes Ns = Ns Ar fmt
220 is used as a template for linked header files (usually via the
225 are replaced with the include filename.
226 The default is not to present a
228 .It Fl O Ns Cm man Ns = Ns Ar fmt
232 .Ar ../html%S/%N.%S.html ,
233 is used as a template for linked manuals (usually via the
240 are replaced with the linked manual's name and section, respectively.
241 If no section is included, section 1 is assumed.
242 The default is not to
244 .It Fl O Ns Cm style Ns = Ns Ar style.css
247 is used for an external style-sheet.
248 This must be a valid absolute or
252 This section documents output details of
254 In general, output conforms to the traditional manual style of a header,
255 a body composed of sections and sub-sections, and a footer.
257 The text style of output characters (non-macro characters, punctuation,
258 and white-space) is dictated by context.
260 White-space is generally stripped from input.
261 This can be changed with
262 character escapes (specified in
264 or literal modes (specified in
269 If non-macro punctuation is set apart from words, such as in the phrase
270 .Dq to be \&, or not to be ,
273 regardless of output format, according to the following rules: opening
281 is not followed by a space; closing punctuation
294 is not preceded by white-space.
298 however, these rules are also applied to macro arguments when appropriate.
302 which is the default, is rendered in standard 7-bit ASCII documented in
305 Font styles are applied by using back-spaced encoding such that an
309 .Sq _ Ns \e[bs] Ns c ,
312 is the back-space character number 8.
313 Emboldened characters are rendered as
314 .Sq c Ns \e[bs] Ns c .
316 The special characters documented in
318 are rendered best-effort in an ASCII equivalent.
320 Output width is limited to 78 visible columns unless literal input lines
325 conforms to HTML-4.01 strict.
327 Font styles and page structure are applied using CSS2.
328 By default, no font style is applied to any text,
329 although CSS2 is hard-coded to format
330 the basic structure of output.
333 .Pa example.style.css
334 file documents the range of styles applied to output and, if used, will
335 cause rendered documents to appear as they do in
338 Special characters are rendered in decimal-encoded UTF-8.
342 conforms to XHTML-1.0 strict.
346 for details; beyond generating XHTML tags instead of HTML tags, these
347 output modes are identical.
349 To page manuals to the terminal:
351 .D1 $ mandoc \-Wall,error \-fstrict mandoc.1 2\*(Gt&1 | less
352 .D1 $ mandoc mandoc.1 mdoc.3 mdoc.7 | less
354 To produce HTML manuals with
358 .D1 $ mandoc \-Thtml -Ostyle=style.css mdoc.7 \*(Gt mdoc.7.html
360 To check over a large set of manuals:
362 .Dl $ mandoc \-Tlint \-fign-errors `find /usr/src -name \e*\e.[1-9]`
364 This section summarises
368 Each input and output format is separately noted.
369 .Ss ASCII Compatibility
374 special character doesn't produce expected behaviour in
385 are synonyms, as are \-filled and \-ragged.
392 macro does not underline when scoped under an
394 in the FILES section.
395 This behaves correctly in
398 A list or display following the
403 does not assert a prior vertical break, just as it doesn't with
413 Words aren't hyphenated.
415 In normal mode (not a literal block), blocks of spaces aren't preserved,
416 so double spaces following sentence closure are reduced to a single space;
420 Sentences are unilaterally monospaced.
422 .Ss HTML/XHTML Compatibility
427 escape will revert the font to the previous
429 escape, not to the last rendered decoration, which is now dictated by
430 CSS instead of hard-coded.
431 It also will not span past the current scope,
435 mode, this will work fine.
442 list types render similarly (no break following overreached left-hand
443 side) due to the expressive constraints of HTML.
450 lists render similarly.
459 utility was written by
460 .An Kristaps Dzonsons Aq kristaps@bsd.lv .
466 CSS2 styling used for
468 input lists does not render properly in older browsers, such as Internet
469 Explorer 6 and earlier.
475 the maximum size of an element attribute is determined by
477 which is usually 1024 bytes.
478 Be aware of this when setting long link
480 .Fl O Ns Cm style Ns = Ns Ar really/long/link .
486 output modes don't render the
488 font size escape documented in
493 Nesting elements within next-line element scopes of
503 and cause them to forget the formatting of the prior next-line scope.
509 should italicise all subsequent text if a line argument is not provided.
510 This behaviour is not implemented.
513 control character is an alias for the standard macro control character
514 and does not emit a line-break as stipulated in GNU troff.