=================================================================== RCS file: /cvs/mandoc/Attic/manuals.7,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- mandoc/Attic/manuals.7 2009/03/22 14:28:08 1.3 +++ mandoc/Attic/manuals.7 2009/03/22 21:19:34 1.7 @@ -25,21 +25,20 @@ documentation If you add something to your operating system, whether it's a new file format or directory structure or device driver, it needs documentation. .\" SECTION -.Sh CLASSIFICATION -Classify your system component. In -.Ux , -each component has a -.Dq manual section , -which categorises the component's function. The section of a manual is -usually listed in parenthesis next to the component name, such as -.Xr ps 1 , -section 1. You can query a manual explicitly by its section: +.Sh COMPOSITION +Prepare your composition environment by copying over the manual template +from +.Pa /usr/share/misc/mdoc.template . +.Em \&Do not +start afresh or by copying another manual unless you know exactly what +you're doing! +.\" SUBSECTION +.Ss Section Numbering +Find an appropriate section for your manual. There may exist multiple +manual names per section, so be specific. A table of all available +manual sections follows: .Pp -.Dl % man \-s 1 ps -.Pp -The following table lists classifications and the applicable manual -sections: -.Pp +.\" LIST .Bl -tag -width "XXXXXXXXXXXX" -offset indent -compact .It Em Section .Em Description @@ -61,47 +60,31 @@ administrator utilities in-kernel routines .El .Pp -Some examples in regular name/section form: -.Pp -.\" LIST -.Bl -tag -width "File-formatX" -offset indent -compact -.It Em Manual -.Em Description -.It Xr dc 4 -DEC/Intel 10/100 Ethernet device -.It Xr usermod 8 -modify user login information -.It Xr cc 1 -the C compiler -.It Xr fortune 6 -print a random adage -.It Xr open 2 -open or create a file for reading or writing -.It Xr isspace 3 -whitespace character test -.It Xr Pod::Man 3p -convert POD data to formatted roff -.It Xr tsleep 9 -process context sleep -.It Xr passwd 5 -format of the password file -.It Xr symlink 7 -symbolic link handling -.El -.\" SECTION -.Sh COMPOSITION -Prepare your composition environment. +If your manual falls into multiple categories, choose the most +widely-used or, better, re-consider the topic of your manual to be more +specific. You can list all manuals per section by invoking +.Xr apropos 1 , +then provide the +.Fl s +flag to +.Xr man 1 +to see the specific section manual (section 1, in this example): +.\" DISPLAY +.Bd -literal -offset indent +% apropos myname +myname (1) - utility description +myname (3) - library description +% man \-s 1 myname +.Ed .\" SUBSECTION .Ss Naming -Your component will need a name by which to query its contents via -.Xr man 1 . -Keep it simple. You may want to look for other manuals by that same -name before committing: +Name your component. Be terse, erring on the side of clarity. You may +want to look for other manuals by that same name before committing: .Pp .Dl % apropos myname .Pp -Conventionally, manual files are named -.Pa myname.section , +Manual files are named +.Pa myname.mysection , such as .Pa manuals.7 for this document. @@ -123,13 +106,13 @@ packages of .Xr roff 7 ; newer languages such as DocBook, texinfo or schema-driven XML; or even ad-hoc conventions such as README files. -.Em Stay away from these methods! +.Em Avoid these formats . Historical formats fail to capture a manual's semantic content, instead only modelling its style. Newer methods requires special, system-specific tools and may change or become obsolete over the life-time of your component. .Pp -There are two canonical references for writing mdoc manuals: +There are two canonical references for writing mdoc. Read them. .Pp .\" LIST .Bl -tag -width XXXXXXXXXXXXXXXX -offset indent -compact @@ -139,9 +122,9 @@ formal language reference macro reference .El .Pp -Don't merely copy existing manuals! Most systems distribute an mdoc -template to help you get started in -.Pa /usr/share/misc/mdoc.template . +Open the template you've copied into +.Pa name.section +and begin editing. .\" SUBSECTION .Ss Development Tools While writing, make sure that your manual is correctly structured: @@ -161,7 +144,6 @@ to version-control your work. If you wish the last ch your document's date, use the following RCS tag for the date macro: .Pp .Dl \&.Dd $Mdocdate: March 22 2009 $ -.Pp .\" SUBSECTION .Ss Viewing mdoc documents may be paged to your terminal with traditional @@ -195,10 +177,8 @@ output: \&.in.1: mandoc -Wall,error -Tlint $< cp -f $< $@ - \&.1.html: mandoc -Thtml $< >$@ - \&.1.txt: mandoc -Tascii $< | col -b >$@ .Ed @@ -208,7 +188,7 @@ The .Xr mdoc 7 and .Xr mdoc.samples 7 -files will be indispensable in guiding composition. In this section, we +files are indispensable in guiding composition. In this section, we introduce some .Ux manual best practices: @@ -233,7 +213,7 @@ symbols and so on), use the escapes dictated in .\" SUBSECTION .Ss References Other components may be referenced with the -.Sq \&Xr , +.Sq \&Xr and .Sq \&Sx macros. Make sure that these exist. If you intend to distribute your @@ -250,14 +230,12 @@ publications, please use the block macros. .\" SUBSECTION .Ss Formatting -Let the front-ends worry about formatting for you, but if you must think -about formatting (at times necessary, especially for tagged and columnar -lists), assume that your output device is a fixed-width terminal window: -.Bd -literal -offset indent -\&.Bl \-tag \-width "-o outfile" -\&.It \&Fl \&Ar outfile -.Ed -.Pp -You may assume that the width calculated by the string literal -.Qq Fl o Ar outfile -will +.Em Don't style your manual. +Give it meaningful content. The front-end will worry about formatting +and style. +.\" SECTION +.Sh MAINTENANCE +As your component changes and bugs are fixed, your manual may become out +of date. You may be tempted to use automation tools like Doxygen to +smooth the development of your manuals. Don't. Source documentation is +different from a component manual.