]> git.cameronkatri.com Git - mandoc.git/blobdiff - mandoc.1
Added news item for new version.
[mandoc.git] / mandoc.1
index d2697d0113f3192820ffd11ec0e235e06e17a773..64152e8b68d1794b10667ca9293ac249b375cf72 100644 (file)
--- a/mandoc.1
+++ b/mandoc.1
@@ -1,4 +1,4 @@
-.\"    $Id: mandoc.1,v 1.33 2009/08/20 12:26:15 kristaps Exp $
+.\"    $Id: mandoc.1,v 1.50 2010/01/29 14:39:38 kristaps Exp $
 .\"
 .\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@kth.se>
 .\"
@@ -14,7 +14,7 @@
 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd $Mdocdate: August 20 2009 $
+.Dd $Mdocdate: January 29 2010 $
 .Dt MANDOC 1
 .Os
 .
 .
 .Sh SYNOPSIS
 .Nm mandoc
-.Op Fl V
 .Op Fl f Ns Ar option...
 .Op Fl m Ns Ar format
-.Op Fl W Ns Ar err...
+.Op Fl O Ns Ar option...
 .Op Fl T Ns Ar output
+.Op Fl V
+.Op Fl W Ns Ar err...
 .Op Ar infile...
 .
 .
@@ -43,7 +44,7 @@ manual pages for display.  The arguments are as follows:
 .
 .Bl -tag -width Ds
 .It Fl f Ns Ar option...
-Override default compiler behaviour.  See
+Comma-separated compiler options.  See
 .Sx Compiler Options
 for details.
 .
@@ -53,6 +54,11 @@ Input format.  See
 for available formats.  Defaults to
 .Fl m Ns Ar andoc .
 .
+.It Fl O Ns Ar option...
+Comma-separated output options.  See
+.Sx Output Options
+for details.
+.
 .It Fl T Ns Ar output
 Output format.  See
 .Sx Output Formats
@@ -63,7 +69,7 @@ for available formats.  Defaults to
 Print version and exit.
 .
 .It Fl W Ns Ar err...
-Configure warning messages.  Use
+Comma-separated warning options.  Use
 .Fl W Ns Ar all
 to print warnings,
 .Fl W Ns Ar error
@@ -90,55 +96,14 @@ or
 .Xr man 7
 text from stdin, implying
 .Fl m Ns Ar andoc ,
-and prints 78-column backspace-encoded output to stdout as if
+and produces
 .Fl T Ns Ar ascii
-were provided.
+output.
 .
 .Pp
 .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
 The
 .Nm
@@ -189,12 +154,22 @@ The
 .Nm
 utility accepts the following
 .Fl T
-arguments:
+arguments (see
+.Sx OUTPUT ) :
 .
 .Bl -tag -width Ds
 .It Fl T Ns Ar ascii
 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
+Produce strict HTML-4.01 output, with a sane default style.  See
+.Sx HTML Output .
+.
+.It Fl T Ns Ar xhtml
+Produce strict XHTML-1.0 output, with a sane default style.  See
+.Sx XHTML Output .
 .
 .It Fl T Ns Ar tree
 Produce an indented parse tree.
@@ -209,7 +184,7 @@ corresponding filter in-order.
 .
 .
 .Ss Compiler Options
-Default compiler behaviour may be overriden with the
+Default compiler behaviour may be overridden with the
 .Fl f
 flag.
 .
@@ -219,6 +194,11 @@ 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 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
 Don't ignore invalid escape sequences.
 .
@@ -241,15 +221,146 @@ Don't halt when encountering parse errors.  Useful with
 over a large set of manuals passed on the command line.
 .El
 .
+.
+.Ss Output Options
+For the time being, only
+.Fl T Ns Ar html
+accepts output options:
+.Bl -tag -width Ds
+.It Fl O Ns Ar style=style.css
+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
+.Ar fmt ,
+for example,
+.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
+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
+.
+.
+.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
-As with the
-.Fl W
-flag, multiple
-.Fl f
-options may be grouped and delimited with a comma.  Using
-.Fl f Ns Ar ign-scope,no-ign-escape ,
-for example, will try to ignore scope and not ignore character-escape
-errors.
+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
+conforms 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.
+.
+.
+.Ss XHTML Output
+Output produced by
+.Fl T Ns Ar xhtml
+conforms to XHTML-1.0 strict.
+.Pp
+See
+.Sx HTML Output
+for details; beyond generating XHTML tags instead of HTML tags, these
+output modes are identical.
 .
 .
 .Sh EXAMPLES
@@ -260,6 +371,12 @@ To page manuals to the terminal:
 .D1 % mandoc mandoc.1 mdoc.3 mdoc.7 | less
 .
 .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:
 .
 .Pp
@@ -274,18 +391,18 @@ compatibility with
 Each input and output format is separately noted.
 .
 .
-.Ss ASCII output
+.Ss ASCII Compatibility
 .Bl -bullet -compact
 .It
-The 
+The
 .Sq \e~
-special character doesn't produce expected behaviour in 
+special character doesn't produce expected behaviour in
 .Fl T Ns Ar ascii .
 .
 .It
-The 
+The
 .Sq \&Bd \-literal
-and 
+and
 .Sq \&Bd \-unfilled
 macros of
 .Xr mdoc 7
@@ -294,7 +411,7 @@ in
 are synonyms, as are \-filled and \-ragged.
 .
 .It
-In 
+In
 .Xr groff 1 ,
 the
 .Sq \&Pa
@@ -316,12 +433,10 @@ does not assert a prior vertical break, just as it doesn't with
 .It
 The
 .Sq \&na
-and
-.Sq \&Dt
 .Xr man 7
-macros in
+macro in
 .Fl T Ns Ar ascii
-have no effect.
+has no effect.
 .
 .It
 Words aren't hyphenated.
@@ -335,14 +450,78 @@ retains spaces.
 .It
 Sentences are unilaterally monospaced.
 .El
-.\" SECTION
+.
+.
+.Ss HTML/XHTML 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
 .Xr mandoc_char 7 ,
 .Xr mdoc 7 ,
 .Xr man 7
-.\" SECTION
+.
 .Sh AUTHORS
 The
 .Nm
 utility was written by
 .An Kristaps Dzonsons Aq kristaps@kth.se .
+.
+.
+.Sh CAVEATS
+The
+.Fl T Ns Ar html
+and
+.Fl T Ns Ar xhtml
+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
+and
+.Fl T Ns Ar xhtml ,
+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
+and
+.Fl T Ns Ar xhtml
+output modes don't render the
+.Sq \es
+font size escape documented in
+.Xr mdoc 7
+and
+.Xr man 7 .