boxes/doc/boxes.1.in

370 lines
12 KiB
Groff
Raw Normal View History

2019-04-04 22:15:57 +02:00
.\" @(#)boxes.1 1.3 04/04/2019
1999-07-12 20:07:46 +02:00
.\"
.\" boxes.1.in
.\" Thomas Jensen
1999-07-12 20:07:46 +02:00
.\"
2019-04-04 22:15:57 +02:00
.TH boxes 1 "April 04 2019"
1999-07-12 20:07:46 +02:00
.UC 4
.SH NAME
boxes \- text mode box and comment drawing filter
.SH SYNOPSIS
.B boxes
[\-hlmrv] [\-a\ format] [\-d\ design] [\-f\ file] [\-i\ indent] [\-k\ bool]
[\-n\ encoding] [\-p\ pad] [\-s\ size] [\-t\ tabopts] [infile [outfile]]
1999-07-12 20:07:46 +02:00
.SH DESCRIPTION
.I Boxes
is a text filter which can draw any kind of box around its input text. Box
design choices range from simple boxes to complex ASCII art. A box can also
be removed and repaired, even if it has been badly damaged by editing of the
text inside. Since boxes may be open on any side,
1999-07-12 20:07:46 +02:00
.I boxes
can also be used to create regional comments in any programming language.
New box designs of all sorts can easily be added and shared by appending to
2019-04-04 22:15:57 +02:00
a configuration file.
.LP
.I boxes
is a command line tool, but also integrates with any text editor that
supports filters. The
1999-07-12 20:07:46 +02:00
.I boxes
2019-04-04 22:15:57 +02:00
website has examples on how to configure editor integration for various
text editors:
.br
<URL:https://boxes.thomasjensen.com/docs/install.html>
1999-07-12 20:07:46 +02:00
.\" =======================================================================
.SH OPTIONS
Options offered by
.I boxes
are the following:
.TP 0.6i
.B \-a \fIstring\fP
1999-07-12 20:07:46 +02:00
Alignment/positioning of text inside box. This option takes a format string
argument which is read from left to right. The format string may not
contain whitespace and must consist of one or more of the following
components:
.br
.B h\fPx
\- horizontal alignment of the input text block inside a potentially larger
1999-07-12 20:07:46 +02:00
box. Possible values for
.I x
are
.B l
(ell, for left alignment),
.B c
(center), or
.B r
(right). This does not affect the justification of text lines within the
input text block (use the
.B j
argument instead).
.br
.B v\fPx
\- vertical alignment of the input text block inside a potentially larger
1999-07-12 20:07:46 +02:00
box. Possible values for
.I x
are
.B t
(for top alignment),
.B c
(center), or
.B b
(bottom).
.br
.B j\fPx
\- justification of lines within the input text block. Possible values for
1999-07-12 20:07:46 +02:00
.I x
are
.B l
(ell, for left justification),
.B c
(center), or
.B r
(right). This does not affect the alignment of the input text block itself
within the box. Use the
.B h
and
.B v
arguments for input text block positioning.
.br
Short hand notations (can be combined with the above arguments):
.br
.B l
(ell) \- short for
1999-07-12 20:07:46 +02:00
.B h\fPl\fBv\fPc\fBj\fPl
.br
.B c
\- short for
1999-07-12 20:07:46 +02:00
.B h\fPc\fBv\fPc\fBj\fPc
.br
.B r
\- short for
1999-07-12 20:07:46 +02:00
.B h\fPr\fBv\fPc\fBj\fPr
.br
The factory default setting for
.B \-a
1999-07-12 20:07:46 +02:00
is
.B h\fPl\fBv\fPt.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-c \fIstring\fP
2000-04-01 20:26:57 +02:00
Command line design definition for simple cases. The argument of this
option is the definition for the "west" (W) shape. The defined shape must
consist of exactly one line, i.e. no multi\-line shapes are allowed. The
.B \-c
2000-04-01 20:26:57 +02:00
option is intended as a shortcut for those cases where simple regional
comments are to be created, which only need a certain character or sequence
of characters to be placed in front of every line. In such cases, it is
much more convenient to simply specify
.B \-c
2000-04-01 20:26:57 +02:00
than to do a complete design definition in one's config file, where the
only shape defined is the west shape.
.br
This option implies a
.B \-d
2000-04-01 20:26:57 +02:00
and does not access the config file.
.B \-c
may of course be used in conjunction with any of the other options. By default,
.B \-c
2000-04-01 20:26:57 +02:00
is not specified.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-d \fIstring\fP
Design selection. The one argument of this option is the name of the design to
1999-07-12 20:07:46 +02:00
use.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-f \fIstring\fP
1999-07-12 20:07:46 +02:00
Use alternate config file. The one argument of this option is the name of a
valid
.I boxes
config file, containing new and exciting designs!
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-h
1999-07-12 20:07:46 +02:00
Print usage information.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-i \fIstring\fP
1999-07-12 20:07:46 +02:00
Indentation mode. Possible arguments are "text" (indent text inside of
box), "box" (indent box, not text inside of box), or "none" (throw away
indentation). Arguments may be abbreviated. The default is to indent the
box, but not the text.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-k \fIbool\fP
Kill leading/trailing blank lines on removal. The value of
.I bool
can be specified as on, yes, true, 1, or t, all meaning yes, or off, no,
false, 0, or f, which mean no. This is case\-insensitive. This option only
takes effect in connection with
.B \-r\fP.
If set to yes, leading and trailing blank lines will be removed from the
output. If set to no, the entire content of the former box is returned.
The default is no, if both the top and the bottom part of the box are open,
as is the case with most regional comments. If the box's design defines a
top part or a bottom part, the default is yes.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-l
1999-07-12 20:07:46 +02:00
(ell) List designs. Produces a listing of all available box designs in the
config file, along with a sample box and information about it's creator.
Also checks syntax of the entire config file. If used in connection with
.B \-d\fP,
displays detailed information about the specified design.
1999-07-12 20:07:46 +02:00
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-m
Mend box. This removes a (potentially broken) box as with
.B \-r\fP,
and redraws it afterwards. The mended box is drawn according to the
options given. This may be important to know when it comes to restoring
2018-03-11 11:11:00 +01:00
padding, indentation, etc. for the mended box. Implies
.B \-k
false.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-n \fIencoding\fP
Character encoding. Overrides the character encoding of the input and output
text. Choose from the list shown by \fIiconv -l\fP. If an invalid character
encoding is specified here, \fIUTF-8\fP is used as a fallback. The default
is to use the system encoding, which is normally the best course of action.
So don't specify this option unless you have to.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-p \fIstring\fP
1999-07-12 20:07:46 +02:00
Padding. Specify padding in spaces around the input text block for all
sides of the box. The argument string may not contain whitespace and must
consist of a combination of the following characters, each followed by a
number indicating the padding in spaces:
.br
.B a
\- (all) give padding for all sides at once
1999-07-12 20:07:46 +02:00
.br
.B h
\- (horiz) give padding for both horizontal sides
1999-07-12 20:07:46 +02:00
.br
.B v
\- (vertical) give padding for both vertical sides
1999-07-12 20:07:46 +02:00
.br
.B b
\- (bottom) give padding for bottom (south) side
1999-07-12 20:07:46 +02:00
.br
.B l
\- (left) give padding for left (west) side
1999-07-12 20:07:46 +02:00
.br
.B t
\- (top) give padding for top (north) side
1999-07-12 20:07:46 +02:00
.br
.B r
\- (right) give padding for right (east) side
1999-07-12 20:07:46 +02:00
.br
Example:
.B \-p a\fP4\fBt\fP2
1999-07-12 20:07:46 +02:00
would define the padding to be 4 characters on all sides, except for the
top of the box, where the input text block will be only 2 lines away from
the box.
.br
By default, unless specified otherwise in the config file, no padding is
used.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-r
1999-07-12 20:07:46 +02:00
Remove box. Removes an existing box instead of drawing it. Which design to
use is detected automatically. In order to save time or in case the
detection does not decide correctly, combine with
.B \-d
1999-07-12 20:07:46 +02:00
to specify the design. The default is to draw a new box.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-s \fIwidth\fBx\fPheight\fP
Box size. This option specifies the desired box size in units of columns
(for width) and lines (for height).
If only a single number is given as argument, this number specifies the
desired box width. A single number prefixed by 'x' specifies only the box
height. The actual resulting box size may vary depending on the individual
shape sizes of the chosen design. Also, other command line options may
influence the box size (such as
.B \-p\fP).
.br
1999-07-12 20:07:46 +02:00
By default, the smallest possible box is created around the text.
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-t \fIstring\fP
Tab handling. This option controls how tab characters in the input text are
handled. The option string must always begin with a
.I uint
number indicating the distance between tab stops. It is important that this
value be set correctly, or tabulator characters will upset your input text.
The correct tab distance value depends on the settings used for the text
you are processing. A common value is 8.
.br
Immediately following the tab distance, an optional character can be appended,
telling
.I boxes
how to treat the leading tabs. The following options are available:
.br
.B e
\- expand tabs into spaces
.br
.B k
\- keep tabs as close to what they were as possible
.br
.B u
\- unexpand tabs. This makes
.I boxes
turn as many spaces as possible into tabs.
.br
In order to maintain backwards compatibility, the
.B \-t
.I string
can be just a number. In that case,
.B e
is assumed for tab handling, which removes all tabs and replaces them with
spaces. The factory default for the
.B \-t
option is simply 8, which is just such a case.
.br
For example, you could specify
.B \-t \fP4u
in order to have your leading tabs unexpanded. In the box content, tabs are
always converted into spaces. The tab distance in this example is 4.
1999-07-12 20:07:46 +02:00
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.TP 0.6i
.B \-v
1999-07-12 20:07:46 +02:00
Print out current version number.
.\" =======================================================================
.SH CONFIGURATION FILES
.I Boxes
will use the configuration file specified on the command line (using
.B \-f\fP).
If no config file is specified on the command line,
.I boxes
will check for the BOXES environment variable, which may contain a filename
to use. If BOXES is not set,
.I boxes
will try to read $HOME/.boxes and use it as a config file. Failing that,
.I boxes
will try to read the system\-wide config file (see FILES).
.PP
1999-07-12 20:07:46 +02:00
The syntax of
.I boxes
2019-04-04 22:15:57 +02:00
config files is described on the website.
1999-07-12 20:07:46 +02:00
.\" =======================================================================
.SH AVAILABILITY
2019-04-04 22:15:57 +02:00
The
.I boxes
website is <URL:https://boxes.thomasjensen.com/>. It contains a number
of examples illustrating this manual page as well as more in\-depth
1999-07-12 20:07:46 +02:00
documentation.
.\" =======================================================================
.SH AUTHOR
.I Boxes
2019-04-04 22:15:57 +02:00
was made by Thomas Jensen and many great contributors.
.br
For a full list, see
.br
<URL:https://boxes.thomasjensen.com/contributing.html#contributors>
1999-07-12 20:07:46 +02:00
.br
2019-04-04 22:15:57 +02:00
and <URL:https://github.com/ascii-boxes/boxes/graphs/contributors>.
.br
Please refer to the
1999-07-12 20:07:46 +02:00
.I boxes
2019-04-04 22:15:57 +02:00
website for the maintainer's current email address.
1999-07-12 20:07:46 +02:00
.\" =======================================================================
.SH VERSION
This is
.I boxes
version --BVERSION--.
1999-07-12 20:07:46 +02:00
.\" =======================================================================
.SH BUGS
2019-04-04 22:15:57 +02:00
Any currently known bugs, and also any current feature requests are tracked
on GitHub: <URL:https://github.com/ascii-boxes/boxes/issues>
1999-07-12 20:07:46 +02:00
.\" =======================================================================
.SH ENVIRONMENT
.I Boxes
recognizes the following environment variables:
.TP 1.0i
1999-07-12 20:07:46 +02:00
HOME
The user's home directory.
.TP 1.0i
1999-07-12 20:07:46 +02:00
BOXES
Name of
.I boxes
configuration file, if different from ~/.boxes.
.\" =======================================================================
.SH FILES
.TP 1.0i
1999-07-12 20:07:46 +02:00
$HOME/.boxes
.I boxes
2019-04-04 22:15:57 +02:00
configuration file (takes precedence over system-wide configuration file)
.TP 1.0i
--GLOBALCONF--
system\-wide configuration file
1999-07-12 20:07:46 +02:00
.\" =======================================================================
.SH "SEE ALSO"
.BR figlet (6),
.BR iconv (1)