doctools_fmt(n) 1.0 doctools "Documentation tools"

NAME

doctools_fmt - Specification of simple tcl markup for manpages

SYNOPSIS

vset varname value
vset varname
include filename
manpage_begin command section version
manpage_end
moddesc desc
titledesc desc
copyright text
description
require pkg ?version?
section name
para
see_also args
keywords args
arg text
cmd text
opt text
emph text
strong text
comment text
sectref text
syscmd text
method text
option text
widget text
fun text
type text
package text
class text
var text
file text
uri text
term text
const text
nl
lb
rb
example_begin
example_end
example text
list_begin what
list_end
bullet
enum
lst_item text
call args
arg_def type name ?mode?
opt_def name ?arg?
cmd_def command
tkoption_def name dbname dbclass
usage args

DESCRIPTION

This manpage specifies a documentation format for manpages. It is intended to complement both the doctoc format for writing tables of contents and the docidx format for writing indices. See doctoc_fmt and docidx_fmt for the specification of these two formats.

This format is called doctools. It provides all the necessary commands to write manpages. Like for the doctoc and docidx formats a package is provided implementing a generic framework for the conversion of doctools to a number of different output formats, like HTML, TMML, nroff, LaTeX, etc. The package is called doctools, its documentation can be found in doctools. People wishing to write a formatting engine for the conversion of doctools into a new output format have to read doctools_api. This manpage will explain the interface between the generic package and such engines.

OVERVIEW

doctoc is similar to LaTex in that it consists primarily of text, with markup commands embedded into it. The format used to mark something as command is different from LaTeX however. All text between matching pairs of [ and ] is a command, possibly with arguments. Note that both brackets have to be on the same line for a command to be recognized.

In contrast to both doctoc and docidx this format does allow plain text beyond white space. This plain text will be the contents of the described manpage.

FORMATTING COMMANDS

Commands

vset varname value
Sets the formatter variable varname to the specified value. Returns the empty string.

vset varname
Returns the value associated with the formatter variable varname.

include filename
Reads the file named filename, runs it through the expansion process and returns the expanded result.

manpage_begin command section version
This command begins a manpage. Nothing is allowed to precede it. Arguments are the name of the command described by the manpage, the section of the manpages this manpages lives in, and the version of the module containing the command. All have to fit on one line.

manpage_end
This command closes a manpage. Nothing is allowed to follow it.

moddesc desc
This command is required and comes after manpage_begin, but before either require or description. Its argument provides a one-line description of the module described by the manpage.

titledesc desc
This command is optional and comes after manpage_begin, but before either require or description. Its argument provides a one-line expansion of the title for the manpage. If this command is not used the manpage processor has to use information from moddesc instead.

copyright text
This command is optional and comes after manpage_begin, but before either require or description. Its argument declares the copyright assignment for the manpage. When invoked more than once the assignments are accumulated.

A doctools processor is allowed to provide auch information too, but a formatting engine has to give the accumulated arguments of this command precedence over the data coming from the processor.

description
This command separates the header part of the manpage from the main body. Only require, moddesc, or titledesc may precede it.

require pkg ?version?
May occur only between manpage_begin and description. Is used to list the packages which are required for the described command to be operational.

section name
Used to structure the body of the manpage into named sections. This command is not allowed inside of a list or example. It implicitly closes the last paragraph before the command and also implicitly opens the first paragraph of the new section.

para
Used to structure sections into paragraphs. Must not be used inside of a list or example.

see_also args
Creates a section SEE ALSO containing the arguments as cross-references. Must not be used inside of a list or example.

keywords args
Creates a section KEYWORDS containing the arguments as words indexing the manpage. Must not be used inside of a list or example.

arg text
Declares that the marked text is the name of a command argument.

cmd text
Declares that the marked text is the name of a command.

opt text
Declares that the marked text is something optional. Most often used in conjunction with arg to denote optional command arguments.

emph text
Emphasize the text.

strong text
Emphasize the text. Same as emph. Usage is discouraged. The command is deprecated and present only for backward compatibility.

comment text
Declares that the marked text is a comment.

sectref text
Declares that the marked text is a section reference.

syscmd text
Declares that the marked text is a system command.

method text
Declares that the marked text is a object method.

option text
Declares that the marked text is a option.

widget text
Declares that the marked text is a widget.

fun text
Declares that the marked text is a function.

type text
Declares that the marked text is a data type.

package text
Declares that the marked text is a package.

class text
Declares that the marked text is a class.

var text
Declares that the marked text is a variable.

file text
Declares that the marked text is a file .

uri text
Declares that the marked text is a uri.

term text
Declares that the marked text is a unspecific terminology.

const text
Declares that the marked text is a constant value.

nl
Vertical space to separate text without breaking it into a new paragraph.

lb
Introduces a left bracket into the output.

rb
Introduces a right bracket into the output. The bracket commands are necessary as plain brackets are used to denote the beginnings and endings of the formatting commands.

example_begin
Formats subsequent text as a code sample: line breaks, spaces, and tabs are preserved and, where appropriate, text is presented in a fixed-width font.

example_end
End of a code sample block.

example text
Formats text as a multi-line block of sample code. text should be enclosed in braces.

list_begin what
Starts new list of type what. The allowed types (and their associated item commands) are:

bullet
bullet
enum
enum
definitions
lst_item and call

arg
arg_def
cmd
cmd_def
opt
opt_def
tkoption
tkoption_def
list_end
Ends the list opened by the last list_begin.

bullet
Starts a new item in a bulletted list.

enum
Starts a new item in an enumerated list.

lst_item text
Starts a new item in a definition list. The argument is the term to be defined.

call args
Starts a new item in a definition list, but the term defined by it is a command and its arguments.

arg_def type name ?mode?
Starts a new item in an argument list. Specifies the data-type of the described argument, its name and possibly its i/o-mode.

opt_def name ?arg?
Starts a new item in an option list. Specifies the name of the option and possible (i.e. optional) arguments.

cmd_def command
Starts a new item in a command list. Specifies the name of the command.

tkoption_def name dbname dbclass
Starts a new item in a widget option list. Specifies the name of the option, i.e. the name used in scripts, name used by the option database, and the class (type) of the option.

usage args
Defines a term to be used in the table of contents or synopsis section, depending on the format. This command is silent, as it doesn't add any text to the output as a direct result of the call. It merely defines data to appear in another section.

EXAMPLE

The tcl sources of this manpage can serve as an example for all of the markup described by it. Almost every possible construct (with the exception of require) is used here.

SEE ALSO

docidx_fmt, doctoc_fmt, doctools, doctools_api

KEYWORDS

HTML, LaTeX, TMML, generic markup, manpage, markup, nroff

COPYRIGHT

Copyright © 2002 Andreas Kupries <andreas_kupries@users.sourceforge.net>
Copyright © 2003 Andreas Kupries <andreas_kupries@users.sourceforge.net>