version 1.11, 2009/04/03 13:17:26 |
version 1.20, 2010/04/13 05:26:49 |
|
|
.\" $Id$ |
.\" $Id$ |
.\" |
.\" |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@openbsd.org> |
.\" Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv> |
.\" |
.\" |
.\" 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 |
.\" purpose with or without fee is hereby granted, provided that the above |
.\" above copyright notice and this permission notice appear in all |
.\" copyright notice and this permission notice appear in all copies. |
.\" copies. |
|
.\" |
.\" |
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
.\" WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
.\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
.\" AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
.\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
.\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
.\" TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
.\" PERFORMANCE OF THIS SOFTWARE. |
.\" |
.\" |
|
.Dd $Mdocdate$ |
.Dd $Mdocdate$ |
.Dt manuals 7 |
.Dt MANUALS 7 |
.Os |
.Os |
.\" SECTION |
.\" SECTION |
.Sh NAME |
.Sh NAME |
|
|
.Pp |
.Pp |
A system component's documentation describes the utility of that |
A system component's documentation describes the utility of that |
component, whether it's a device driver, an executable or, most |
component, whether it's a device driver, an executable or, most |
importantly, a game. |
importantly, a game. |
.Pp |
.Pp |
This document serves as a tutorial to writing |
This document serves as a tutorial to writing |
.Ux |
.Ux |
documentation |
documentation |
.Pq Dq manuals . |
.Pq Dq manuals . |
.\" SECTION |
.\" SECTION |
.Sh COMPOSITION |
.Sh ENVIRONMENT |
First, copy over the manual template from |
First, copy over the manual template from |
.Pa /usr/share/misc/mdoc.template |
.Pa /usr/share/misc/mdoc.template |
into your source directory. |
into your source directory. |
.Pp |
.Pp |
Line 68 file and wire protocol formats |
|
Line 66 file and wire protocol formats |
|
games |
games |
.It 7 |
.It 7 |
tutorials, documents and papers |
tutorials, documents and papers |
.It 8 |
.It 8 |
administrator utilities |
administrator utilities |
.It 9 |
.It 9 |
in-kernel routines |
in-kernel routines |
Line 97 other manuals by that same name before committing: |
|
Line 95 other manuals by that same name before committing: |
|
.Pp |
.Pp |
.Dl % apropos myname |
.Dl % apropos myname |
.Pp |
.Pp |
Manual files are named |
Manual files are named |
.Pa myname.mysection , |
.Pa myname.mysection , |
such as |
such as |
.Pa manuals.7 |
.Pa manuals.7 |
Line 105 for this document. Rename the template file: |
|
Line 103 for this document. Rename the template file: |
|
.Pp |
.Pp |
.Dl % mv mdoc.template myname.mysection |
.Dl % mv mdoc.template myname.mysection |
.\" SUBSECTION |
.\" SUBSECTION |
.Ss Input Language |
|
Manuals should |
|
.Em always |
|
be written in the |
|
.Xr mdoc 7 |
|
formatting language. |
|
.Pp |
|
There exist other documentation-specific languages, such as the |
|
historical |
|
.Xr man 7 |
|
package of |
|
.Xr roff 7 ; |
|
newer languages such as DocBook or texinfo; or even ad-hoc conventions |
|
such as README files. |
|
.Em Avoid these formats . |
|
.Pp |
|
There are two canonical references for writing mdoc. Read them. |
|
.Pp |
|
.\" LIST |
|
.Bl -tag -width XXXXXXXXXXXXXXXX -offset indent -compact |
|
.It Xr mdoc 7 |
|
formal language reference |
|
.It Xr mdoc.samples 7 |
|
macro reference |
|
.El |
|
.Pp |
|
Open the template you've copied into |
|
.Pa myname.mysection |
|
and begin editing. |
|
.\" SUBSECTION |
|
.Ss Development Tools |
.Ss Development Tools |
While writing, make sure that your manual is correctly structured: |
While writing, make sure that your manual is correctly structured: |
.Pp |
.Pp |
.Dl % mandoc \-Tlint \-Wall name.1 |
.Dl % mandoc \-Tlint \-Wall \-fstrict name.1 |
.Pp |
.Pp |
|
The quick-fix feature of |
|
.Xr vim 1 |
|
is useful for checking over many manuals: |
|
.Bd -literal -offset indent |
|
% mandoc \-Wall \-fstrict \-Tlint \-fign-errors \e |
|
./path/to/manuals/* 2>&1 > /tmp/mandoc.errs |
|
% vim -q /tmp/mandoc.errs |
|
.Ed |
|
.Pp |
You may spell-check your work as follows: |
You may spell-check your work as follows: |
.Pp |
.Pp |
.Dl % deroff name.1 | spell |
.Dl % deroff name.1 | spell |
.Pp |
.Pp |
If |
If |
.Xr ispell 1 |
.Xr ispell 1 |
is installed, it has a special mode for manuals: |
is installed, it has a special mode for manuals: |
.Pp |
.Pp |
.Dl % ispell \-n name.1 |
.Dl % ispell \-n name.1 |
.Pp |
.Pp |
Use |
Use |
.Xr cvs 1 |
.Xr cvs 1 |
or |
or |
.Xr rcs 1 |
.Xr rcs 1 |
Line 160 your document's date, use the following RCS tag for th |
|
Line 137 your document's date, use the following RCS tag for th |
|
.Dl \&.Dd $Mdocdate$ |
.Dl \&.Dd $Mdocdate$ |
.\" SUBSECTION |
.\" SUBSECTION |
.Ss Viewing |
.Ss Viewing |
mdoc documents may be paged to your terminal with |
mdoc documents may be paged to your terminal with |
.Xr mandoc 1 . |
.Xr mandoc 1 . |
If you plan on distributing your work to systems without this tool, |
If you plan on distributing your work to systems without this tool, |
check it against |
check it against |
Line 171 check it against |
|
Line 148 check it against |
|
.Ed |
.Ed |
.\" SUBSECTION |
.\" SUBSECTION |
.Ss Automation |
.Ss Automation |
Consider adding your mdoc documents to |
Consider adding your mdoc documents to |
.Xr make 1 |
.Xr make 1 |
Makefiles in order to automatically check your input: |
Makefiles in order to automatically check your input: |
.Bd -literal -offset indent |
.Bd -literal -offset indent |
Line 186 Makefiles in order to automatically check your input: |
|
Line 163 Makefiles in order to automatically check your input: |
|
Your manual must have a license. It should be listed at the start of |
Your manual must have a license. It should be listed at the start of |
your document, just as in source code. |
your document, just as in source code. |
.\" SECTION |
.\" SECTION |
.Sh BEST PRACTICES |
.Sh COMPOSITION |
The |
Manuals should |
|
.Em always |
|
be written in the |
.Xr mdoc 7 |
.Xr mdoc 7 |
and |
formatting language. |
.Xr mdoc.samples 7 |
.\" PARAGRAPH |
files are indispensable in guiding composition. In this section, we |
.Pp |
introduce some |
Open the template you've copied into |
.Ux |
.Pa myname.mysection |
manual best practices: |
and begin editing. |
.\" SUBSECTION |
.\" SUBSECTION |
.Ss Language |
.Ss Language |
.Bl -enum |
.Bl -enum |
.It |
.It |
Use clear, concise language. Favour simplicity. |
Use clear, concise language. Favour simplicity. |
.It |
.It |
Line 217 symbols and so on), use the escapes dictated in |
|
Line 196 symbols and so on), use the escapes dictated in |
|
.Ss Style |
.Ss Style |
The structure of the mdoc language makes it very hard to have any |
The structure of the mdoc language makes it very hard to have any |
particular format style. Keep your lines under 72 characters in length. |
particular format style. Keep your lines under 72 characters in length. |
If you must have long option lines, use |
If you must have long option lines, use |
.Sq \&Oo/Oc . |
.Sq \&Oo/Oc . |
The same goes for function prototypes. |
The same goes for function prototypes. |
.Em \&Do not |
.Em \&Do not |
use |
use |
.Sq \&Xo/Xc . |
.Sq \&Xo/Xc . |
Find another way to structure your line. |
Find another way to structure your line. |
.\" SUBSECTION |
.\" SUBSECTION |
.Ss References |
.Ss References |
Other components may be referenced with the |
Other components may be referenced with the |
.Sq \&Xr |
.Sq \&Xr |
and |
and |