kopia lustrzana https://github.com/Hamlib/Hamlib
156 wiersze
6.6 KiB
Plaintext
156 wiersze
6.6 KiB
Plaintext
![]() |
Guidelines for updating and authoring new man pages.
|
||
|
|
||
|
|
||
|
Overview
|
||
|
========
|
||
|
|
||
|
The man pages are written in the roff formatting language. See roff(7) ("man
|
||
|
roff") for an overview. roff is implemented on modern Unix like systems by
|
||
|
groff (GNU roff) which is a suite of programs and macro definition files that
|
||
|
make up the roff system.
|
||
|
|
||
|
Documentation written in roff can be transformed into a number of formats for
|
||
|
final publication. For the Hamlib project, the output formats are the classic
|
||
|
man(1) format to a terminal screen, HTML, and PDF. While groff includes a
|
||
|
number of macro pacakges suitable for a variety of document styles, Hamlib
|
||
|
source files are written using the man(7) macro package. The layout of Hamlib
|
||
|
man pages generally follow the format specified in man-pages(7). The macros
|
||
|
used in the man pages format is specified in groff_man(7).
|
||
|
|
||
|
The use of mdoc from the BSD projects has been considered and may be used in
|
||
|
the future if the need arises. Conversely, the classic man macros are
|
||
|
reasonably well understood, fairly simple, easy to use, can be processed by a
|
||
|
wide range of tools, and fits the Hamlib philosophy of being as approachable
|
||
|
as possible. To be fair, mdoc is very comprehensive and would allow many more
|
||
|
formatting choices to be available for the various output formats. At some
|
||
|
point mdoc may well be the better choice.
|
||
|
|
||
|
The latest versions of the manual pages referenced above may be found at:
|
||
|
|
||
|
http://man7.org/linux/man-pages/dir_section_7.html
|
||
|
|
||
|
For information on mdoc, see:
|
||
|
|
||
|
http://mandoc.bsd.lv/
|
||
|
|
||
|
|
||
|
Recommended Practices
|
||
|
=====================
|
||
|
|
||
|
Sections
|
||
|
--------
|
||
|
|
||
|
The man pages are sorted into various sections depending on the part of the
|
||
|
system they document. For Hamlib, the man pages fall into one of three
|
||
|
categories. The placement is as follows:
|
||
|
|
||
|
Section Hamlib subject domain
|
||
|
1 Executables, rigctl, rotctl, etc.
|
||
|
3 Hamlib library constants and functions.
|
||
|
7 General Hamlib information.
|
||
|
|
||
|
Macros and escapes
|
||
|
------------------
|
||
|
|
||
|
The use of man macros to mark up the roff source files is strongly encouraged.
|
||
|
In some cases, the use of lower level troff font escapes, such as "\fBxxx\fP",
|
||
|
is required, but should be used sparingly. Such escapes are hard to read and
|
||
|
not all editors can highlight the escape correctly.
|
||
|
|
||
|
The default font for HTML and PDF is Roman (often Times Roman on the local
|
||
|
system) and rarely needs to be specified directly with the ".R" macro. Text
|
||
|
may be bolded using the ".B" macro or italicized using the ".I" macro. A set
|
||
|
of combination macros exist that combine alternating sequences of styled text
|
||
|
such as ".BR" for alternating Bold and Roman text.
|
||
|
|
||
|
In the OPTIONS and COMMANDS sections of the utility pages there are complex
|
||
|
constructs of the form of:
|
||
|
|
||
|
.BR M ", " set_mode " \(aq" \fIMode\fP "\(aq \(aq" \fIPassband\fP \(aq
|
||
|
|
||
|
The result is that the command strings will be in Bold, the punctuation will
|
||
|
be in Roman, and the names of the variables will be in Italics using the low
|
||
|
level troff font escapes. Quoted strings are required to ensure spacing
|
||
|
between items as the ".BR" macro uses (and other combination macros) spaces to
|
||
|
separate its arguments. As you can see, the font escapes are hard to read as
|
||
|
they must be run up tight against the text.
|
||
|
|
||
|
Special symbols such as copyright or trademark glyphs and styled quotation
|
||
|
marks do require roff escapes inlined with the text. Several such escapes
|
||
|
can be found in the Hamlib roff source files:
|
||
|
|
||
|
Escape Description
|
||
|
\(aq ASCII single quote
|
||
|
\(oq Styled opening single quote
|
||
|
\(cq Styled closing single quote
|
||
|
\(lq Styled opening double quote
|
||
|
\(rq Styled closing double quote
|
||
|
\(co Copyright symbol
|
||
|
|
||
|
Besides the macros documented in man(7), the following troff macros are used
|
||
|
in the Hamlib man pages:
|
||
|
|
||
|
Macro Description
|
||
|
.br Line break (analogous to '\n' in C)
|
||
|
.sp Line break plus an additional blank line
|
||
|
.nf Do not justify following text (encloses the .MT block)
|
||
|
.fi Resume justification
|
||
|
|
||
|
Structure
|
||
|
---------
|
||
|
|
||
|
In addition to the standard man page sections of NAME, SYNPOPSIS, etc., the
|
||
|
Hamlib utility (section 1) man pages add the sections COMMANDS, READLINE,
|
||
|
PROTOCOL, DIAGNOSTICS, COPYRIGHT, and COLOPHON depending on the individual
|
||
|
utility.
|
||
|
|
||
|
|
||
|
Layout Tips
|
||
|
===========
|
||
|
|
||
|
Keep in mind that roff documents are most often processed in a single pass,
|
||
|
i.e. the document processor reads the file from top to bottom and formats the
|
||
|
text per the macros and escapes found along the way. Anything that is not a
|
||
|
macro or an escape gets rendered into the output file and that includes blank
|
||
|
lines. As a result, best practice is to not include blank lines in the
|
||
|
running text. Instead use the ".PP" or ".IP" macros to indicate a paragraph
|
||
|
or an indented paragraph break. To provide vertical spac between elements of
|
||
|
the source document, a single '.' on a line will be discarded by the document
|
||
|
processor. This provides a way to visually separate paragraphs and headings.
|
||
|
|
||
|
Note: While the man macro package recognizes ".LP" and ".P" as synonyms for
|
||
|
".PP", some tools may only recognize ".PP". One such tool is the older
|
||
|
'man2html' converter.
|
||
|
|
||
|
Blank lines may be included as part of an example block placed between the
|
||
|
".EX" and ".EE" macros. Lines between these macros are rendered in HTML and
|
||
|
PDF as blocks of constant width text and should be verbatim input or output
|
||
|
from the shell, programs, or blocks of source code.
|
||
|
|
||
|
Examples should be indented from the blocks of text. The ".RS 0.5i" macro is
|
||
|
used for indentation of normal text blocks while ".RS 1.0i" is used for
|
||
|
indented text blocks, such as a block indented using the ".TP" macro. For
|
||
|
each case the indented block must be followed by the ".RE" macro to return the
|
||
|
next block of text to the normal indentation level.
|
||
|
|
||
|
Normal section headings use the ".SH" macro which provides for vertical space
|
||
|
between the previous text and the heading and also begins the next block of
|
||
|
running text. All text blocks must follow a heading. Headings are normally
|
||
|
composed of one word in all capital letters.
|
||
|
|
||
|
Sub-headings use the ".SS" macro which provides vertical space above the
|
||
|
previous block of text and indents the sub-heading to about half the distance
|
||
|
from the left margin and the block of text that follows. Only one level of
|
||
|
sub-headings is provided.
|
||
|
|
||
|
|
||
|
Getting Help
|
||
|
============
|
||
|
|
||
|
If something is unclear on how to format a new or updated man page, simply
|
||
|
post your question to the mailing list:
|
||
|
|
||
|
hamlib-developer@lists.sourceforge.net
|
||
|
|
||
|
73!
|