summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--example.style.css2
-rw-r--r--mandoc.1174
-rw-r--r--mandoc_char.719
-rw-r--r--mdoc.78
5 files changed, 128 insertions, 77 deletions
diff --git a/Makefile b/Makefile
index b60250ff..73a25b96 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,7 @@ BINDIR = $(PREFIX)/bin
INCLUDEDIR = $(PREFIX)/include
LIBDIR = $(PREFIX)/lib
MANDIR = $(PREFIX)/man
+EXAMPLEDIR = $(PREFIX)/share/examples/mandoc
INSTALL_PROGRAM = install -m 0755
INSTALL_DATA = install -m 0444
INSTALL_LIB = install -m 0644
@@ -112,6 +113,7 @@ install:
$(INSTALL_PROGRAM) mandoc $(BINDIR)
$(INSTALL_MAN) mandoc.1 $(MANDIR)/man1
$(INSTALL_MAN) mdoc.7 $(MANDIR)/man7
+ $(INSTALL_DATA) example.style.css $(EXAMPLEDIR)
uninstall:
rm -f $(BINDIR)/mandoc
diff --git a/example.style.css b/example.style.css
index 469b1feb..50fbff60 100644
--- a/example.style.css
+++ b/example.style.css
@@ -1,3 +1,5 @@
+/* $Id$ */
+
div.body { font-family: monospace;
min-width: 580px; width: 580px; } /* Top-most div tag. */
diff --git a/mandoc.1 b/mandoc.1
index 48822830..342c08ff 100644
--- a/mandoc.1
+++ b/mandoc.1
@@ -96,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
@@ -195,15 +154,18 @@ 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.
+Produce strict HTML-4.01 output, with a sane default style. See
+.Sx HTML Output .
.
.It Fl T Ns Ar tree
Produce an indented parse tree.
@@ -255,10 +217,11 @@ 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
-is the only mode with output options:
+accepts output options:
.Bl -tag -width Ds
.It Fl O Ns Ar style=style.css
The file
@@ -292,6 +255,99 @@ 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
+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
To page manuals to the terminal:
.
@@ -304,7 +360,7 @@ To produce HTML manuals with
.Ar style.css
as the style-sheet:
.Pp
-.D1 % mandoc \-Thtml -ostyle=style.css mdoc.7 > mdoc.7.html
+.D1 % mandoc \-Thtml -Ostyle=style.css mdoc.7 > mdoc.7.html
.Pp
To check over a large set of manuals:
.
@@ -320,7 +376,7 @@ compatibility with
Each input and output format is separately noted.
.
.
-.Ss ASCII output
+.Ss ASCII Compatibility
.Bl -bullet -compact
.It
The
@@ -380,7 +436,8 @@ retains spaces.
Sentences are unilaterally monospaced.
.El
.
-.Ss HTML output
+.
+.Ss HTML Compatibility
.Bl -bullet -compact
.It
The
@@ -409,7 +466,8 @@ and
.Sq TP
lists render similarly.
.El
-.\" SECTION
+.
+.
.Sh SEE ALSO
.Xr mandoc_char 7 ,
.Xr mdoc 7 ,
@@ -421,18 +479,26 @@ The
utility was written by
.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 with
-.Fl O Ns Ar man=fmt .
+formats, e.g.,
+.Fl O Ns Ar style=really/long/link .
.Pp
The
.Fl T Ns Ar html
-utility doesn't yet render the
+output mode doesn't render the
.Sq \es
font size escape documented in
.Xr mdoc 7
diff --git a/mandoc_char.7 b/mandoc_char.7
index 5196318f..6182ce25 100644
--- a/mandoc_char.7
+++ b/mandoc_char.7
@@ -76,25 +76,6 @@ Note that each output mode will have a different rendering of the
characters. It's guaranteed that each input symbol will correspond to a
(more or less) meaningful output rendering, regardless the mode.
.
-.Ss ASCII output
-Formatting documents with ASCII output results in a 7-bit ASCII
-approximation of zero or more characters, for example, the
-.Dq aleph
-character
-.Sq \e(Ah
-will render as
-.Sq N .
-Approximations are a best-effort, and naturally some clarity will be lost.
-.
-.Ss HTML output
-The HTML output mode uses decimal-encoded UTF-8 for sequences, for
-example, the
-.Dq aleph
-character
-.Sq \e(Ah
-will render as
-.Sq ℵ .
-.
.
.Sh SPECIAL CHARACTERS
These are the preferred input symbols for producing special characters.
diff --git a/mdoc.7 b/mdoc.7
index 8ef0435f..89481df1 100644
--- a/mdoc.7
+++ b/mdoc.7
@@ -140,7 +140,7 @@ A numerical representation 3, 2, or 1 (bold, italic, and Roman,
respectively) may be used instead. A text decoration is valid within
the current font scope only: if a macro opens a font scope alongside
its own scope, such as
-.Sx \&Bf
+.Sx \&Bf
.Cm \&Sy ,
in-scope invocations of
.Sq \ef
@@ -1838,7 +1838,7 @@ normalised.
.It
Negative scaling units are now truncated to zero instead of creating
interesting conditions, such as with
-.Sx \&sp
+.Sx \&sp
.Cm \-1i .
Furthermore, the
.Sq f
@@ -1849,7 +1849,7 @@ standalone double-quote in formatted output. This idiosyncratic
behaviour is no longer applicable.
.It
Display types
-.Sx \&Bd
+.Sx \&Bd
.Fl center
and
.Fl right
@@ -1880,7 +1880,7 @@ made historic groff
.Qq go orbital
but is a proper delimiter in this implementation.
.It
-.Sx \&It
+.Sx \&It
.Fl nested
is assumed for all lists (it wasn't in historic groff): any list may be
nested and