mirror of
https://github.com/ascii-boxes/boxes.git
synced 2024-12-14 19:00:40 +01:00
361 lines
11 KiB
Groff
361 lines
11 KiB
Groff
.\" @(#)boxes.1 1.3 10/19/12
|
|
.\"
|
|
.\" boxes.1.in
|
|
.\" Thomas Jensen
|
|
.\"
|
|
.TH boxes 1 "March 16 2017"
|
|
.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]
|
|
[\-p\ pad] [\-s\ size] [\-t\ tabopts] [infile [outfile]]
|
|
.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,
|
|
.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
|
|
a free format configuration file.
|
|
.br
|
|
.I boxes
|
|
was originally intended to be used with the
|
|
.I vim(1)
|
|
text editor, but it can be tied to any text editor which supports filters,
|
|
as well as called from the command line as a standalone tool.
|
|
.\" =======================================================================
|
|
.SH OPTIONS
|
|
Options offered by
|
|
.I boxes
|
|
are the following:
|
|
.TP 0.6i
|
|
.B \-a \fIstring\fP
|
|
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
|
|
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
|
|
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
|
|
.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
|
|
.B h\fPl\fBv\fPc\fBj\fPl
|
|
.br
|
|
.B c
|
|
\- short for
|
|
.B h\fPc\fBv\fPc\fBj\fPc
|
|
.br
|
|
.B r
|
|
\- short for
|
|
.B h\fPr\fBv\fPc\fBj\fPr
|
|
.br
|
|
|
|
The factory default setting for
|
|
.B \-a
|
|
is
|
|
.B h\fPl\fBv\fPt.
|
|
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
.TP 0.6i
|
|
.B \-c \fIstring\fP
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
use.
|
|
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
.TP 0.6i
|
|
.B \-f \fIstring\fP
|
|
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
|
|
Print usage information.
|
|
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
.TP 0.6i
|
|
.B \-i \fIstring\fP
|
|
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
|
|
(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.
|
|
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
.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
|
|
padding, indentation, etc. for the mended box. Implies
|
|
.B \-k
|
|
false.
|
|
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
.TP 0.6i
|
|
.B \-p \fIstring\fP
|
|
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
|
|
.br
|
|
.B h
|
|
\- (horiz) give padding for both horizontal sides
|
|
.br
|
|
.B v
|
|
\- (vertical) give padding for both vertical sides
|
|
.br
|
|
.B b
|
|
\- (bottom) give padding for bottom (south) side
|
|
.br
|
|
.B l
|
|
\- (left) give padding for left (west) side
|
|
.br
|
|
.B t
|
|
\- (top) give padding for top (north) side
|
|
.br
|
|
.B r
|
|
\- (right) give padding for right (east) side
|
|
.br
|
|
Example:
|
|
.B \-p a\fP4\fBt\fP2
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
.\" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
.TP 0.6i
|
|
.B \-v
|
|
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
|
|
The syntax of
|
|
.I boxes
|
|
config files is described on the website (see below). They are quite
|
|
self\-explanatory, though.
|
|
.\" =======================================================================
|
|
.SH AVAILABILITY
|
|
.I Boxes
|
|
is available from its website at
|
|
<URL:https://boxes.thomasjensen.com/>. The website also features a number
|
|
of examples illustrating this manual page as well as more in\-depth
|
|
documentation.
|
|
.PP
|
|
Check out
|
|
.I vim(1)
|
|
at <URL:http://www.vim.org/>!
|
|
.\" =======================================================================
|
|
.SH AUTHOR
|
|
.I Boxes
|
|
was made by Thomas Jensen <boxes@thomasjensen.com>.
|
|
.br
|
|
Please see the
|
|
.I boxes
|
|
website for a current email address.
|
|
.\" =======================================================================
|
|
.SH VERSION
|
|
This is
|
|
.I boxes
|
|
version --BVERSION--.
|
|
.\" =======================================================================
|
|
.SH BUGS
|
|
Although it is doing fine in most cases, imho the design autodetector
|
|
needs some more work.
|
|
.br
|
|
Should you notice any other unspecified behavior, please tell the author!
|
|
.\" =======================================================================
|
|
.SH ENVIRONMENT
|
|
.I Boxes
|
|
recognizes the following environment variables:
|
|
.TP 1.0i
|
|
HOME
|
|
The user's home directory.
|
|
.TP 1.0i
|
|
BOXES
|
|
Name of
|
|
.I boxes
|
|
configuration file, if different from ~/.boxes.
|
|
.\" =======================================================================
|
|
.SH FILES
|
|
.TP 1.0i
|
|
$HOME/.boxes
|
|
.I boxes
|
|
configuration file
|
|
.TP 1.0i
|
|
--GLOBALCONF--
|
|
system\-wide configuration file
|
|
.\" =======================================================================
|
|
.SH "SEE ALSO"
|
|
.I tal(1)
|
|
,
|
|
.I vim(1)
|