Converted boxes website to GitHub Pages

This commit is contained in:
Thomas Jensen 2014-12-23 22:50:09 +01:00
parent 1f530af043
commit 93397610b8
94 changed files with 2982 additions and 577 deletions

17
.gitignore vendored Normal file
View File

@ -0,0 +1,17 @@
_cache
_site
.cproject
.project
*.o
*.a
_support/
idee
doc/boxes.1
doc/*.tar.gz
*.tar.gz
src/boxes
src/boxes.exe
src/boxes.h
src/lex.yy.c
src/parser.h
src/parser.c

49
_config.yml Normal file
View File

@ -0,0 +1,49 @@
# Jekyll configuration
name: boxes
description: Command line ASCII boxes unlimited!
# enable emoticons
gems: ["emoji_for_jekyll"]
# url is currently only used only for the RSS feed in feed.xml
url: http://ascii-boxes.github.io
# baseurl will often be '', but for a project page on gh-pages, it needs to
# be the project name.
# *** IMPORTANT: If your local "jekyll serve" throws errors change this to '' or
# run it like so: jekyll serve --baseurl=''
baseurl: /boxes
# This can be '' to hide the Github nav button
github: 'ascii-boxes/boxes'
# Set this to your UA-# value, or '' to disable the block completely
gaaccount: 'UA-23698164-1'
# Set this to your disqus shortname to enable comments. Note that the 'comments'
# setting below must also be true. Individual posts can override 'comments' to
# disable on a post-by-post basis
disqus: ''
comments: false
permalink: /:year/:month/:title
paginate: 10
highlighter: rouge
#markdown: redcarpet
#redcarpet:
# extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "tables", "with_toc_data"]
markdown: kramdown
kramdown:
input: GFM
exclude: ['README.md', 'LICENSE']
# boxes custom variables
defaults:
-
scope:
path: "" # everywhere
values:
bxemail: '<boxes(at)thomasjensen.com>'

36
_includes/about.md Normal file
View File

@ -0,0 +1,36 @@
# ASCII Box Drawing - the *boxes* filter program
/*********************/
boxes draws any /* boxes draws any */
kind of boxes ===> /* kind of boxes */
around your text! /* around your text! */
/*********************/
*Boxes* is a [text filter]({{ site.baseurl }}/docs/filters.html) which can draw ASCII art boxes around its input text. These boxes may also be removed, even if they have been badly damaged by editing of the text inside. Since boxes may be open on any side, *boxes* can also be used to create regional comments in any programming language. With the help of an editor macro or mapping, damaged boxes can easily be repaired.
This is useful for making the function headers in your programming language look better, for spicing up your news postings and emails, or just for decorating your documentation files.
New box designs of all sorts can easily be added and shared by appending to a free format configuration file. *boxes* was originally intended to be used with the vim(1) text editor, but can be tied to any text editor which supports filters.
## Some Of The Features
- Drawing of ASCII art boxes around input text
- Generation of regional comments in any programming language
- Freely and conveniently user-configurable boxes
- Alignment and positioning of text inside a box
- Removal of boxes, even if box is damaged by editing of contained text
- A number of preconfigured box designs in example config file
- Many useful command line options (such as box size specification etc.)
- Regular expression substitutions on input text
(e.g. used for quoting closing comment tags in a C comment box)
## Author
*Boxes* is developed by Thomas Jensen {{ page.bxemail }}.
Special thanks go to the many [contributors]({{ site.baseurl }}/contributing.html#contributors), who have helped improve *boxes* over the years.
*Boxes* is free software. Go and download your copy from the [download page]({{ site.baseurl }}/download.html)!

11
_includes/analytics.html Normal file
View File

@ -0,0 +1,11 @@
{% if site.gaaccount != '' %}
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{ site.gaaccount }}', 'auto');
ga('send', 'pageview');
</script>
{% endif %}

50
_includes/contributing.md Normal file
View File

@ -0,0 +1,50 @@
# Contributing
You are considering a contribution to *boxes*? That's fantastic!
All *boxes* development has moved to the GitHub social coding platform:
- [Development Wiki](https://github.com/{{ site.github }}/wiki)
- [Sources](https://github.com/{{ site.github }})
- [Bug Reports and Feature Requests](https://github.com/{{ site.github }}/issues)
- [Change Log](https://github.com/{{ site.github }}/commits/master)
- [History of Releases](https://github.com/{{ site.github }}/wiki/Release-History)
Boxes has been around a long time. It is available for many platforms (in reality for many more than those featured on the [download page]({{ site.baseurl }}/download.html)). Great care has been taken to make the *boxes* source as compatible as possible with all kinds of different platforms.
The planned functionality has long been implemented, and it is very stable. Development has thus slowed down and concentrates on maintenance and contributor-supplied changes.
Changes must be introduced by creating pull requests on GitHub. Note that you can improve the *boxes* code as well as the website content! Ideas for new box designs should be submitted via GitHub, but since the most beautiful designs sometimes come from non-technical people, I also accept emails for those.
The author can be contacted via email anytime, but please do not be offended when the response is slow. Even if it takes weeks or months, your email is never lost!
## Contributors
Now that *boxes* is on GitHub, all contributors are automatically [listed on GitHub](https://github.com/{{ site.github }}/graphs/contributors). But in the years before GitHub, *boxes* has received support from additional people:
- Ron Aaron - win32 port
- Peter van den Berkmortel - HPUX 10 binaries of v1.0.1
- Salvatore Bonaccorso - fixes to the man page
- Christoph Dreyer - tab unexpansion
- Andreas Heiduk - bug fixes and compatibility improvements; Jed integration
- Yosuke Kimura - DEC alpha/OSF binaries of v1.0.1
- Elmar Loos - 'mend' option
- Zdenek Sekera - SGI/Irix6 binaries of v1.0.1
- Jason L. Shiffer - Emacs integration
- Henry Spencer - kindly permitted the use of his regular expression library for *boxes*
- Lu Weifeng - OpenWRT port - *boxes* now runs on routers, too
- Tommy Williams - i386/FreeBSD port
- Joe Zbiciak - compatibility improvements and Solaris binaries
- AlpT - the *c-cmt3* design
- Ted Berg - the *javadoc* design
- Neil Bird - the *ada-cmt* and *ada-box* designs
- Bas van Gils - the *cc* design
- Karl E. Jorgensen - the *ian_jones* design
- Vijay Lakshminarayanan - the *lisp-cmt* design
- Elmar Loos - the *ccel* and *underline* designs
- Christian Molls - the *boxquote* design
- Fredrik Steen - the *stone* design
Many thanks to these awesome folks!

View File

@ -0,0 +1,11 @@
{% if page.comments %}
<script type="text/javascript">
var disqus_shortname = '{{ site.disqus }}';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
{% endif %}

View File

@ -0,0 +1,12 @@
{% if site.comments == true and site.disqus != '' %}
<script type="text/javascript">
var disqus_shortname = '{{ site.disqus }}';
(function () {
var s = document.createElement('script'); s.async = true;
s.type = 'text/javascript';
s.src = '//' + disqus_shortname + '.disqus.com/count.js';
(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
}());
</script>
{% endif %}

View File

@ -0,0 +1,84 @@
# Complete Examples
In order to illustrate the *boxes* configuration language described in the previous chapters, we now look at the source code of two complete box designs, one simple and one more complex.
In addition to the examples shown here, please refer to the [official boxes config file](https://github.com/{{ site.github }}/blob/master/boxes-config) for tons more.
## Simple Example
BOX simple
sample
++++++++++++
+ +
++++++++++++
ends
shapes {
n("+") s("+") e("+") w("+")
nw("+") ne("+") se("+") sw("+")
}
elastic (n,s,e,w)
END simple
## Complex Example
BOX tjc
author "John Doe <john@doe.com>"
revision "1.1"
revdate "July 16, 1999 (Friday, 18:55h)"
created "April 02, 1999 (Friday, 19:26h)"
Sample
static char *foo (const int a, const int b)
/*
* Do the foo on the bar and around again.
*
* a number of doodlefrobs
* b barfoo mode (0 == off)
*
* Memory will be allocated for the result.
* Should only be called for lines of length > 0;
*
* RETURNS: Success: Pointer to result line
* Error: -1 (e.g. frobs depleted)
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
static char temp ....
int ii; ....
ends
indent "none" # alternatives: "box", "text"
shapes {
wnw ("/*")
w (" *")
sw ("* ", " *")
ssw ("*", "/")
s (" *", " ")
}
elastic (s, w)
delimiter ?"
replace "\*/" with "*\/" # quote closing comment tags
reverse "\*\\/" to "*/"
padding {
left 2
vertical 1
}
END tjc
Note the `SAMPLE` block of the latter example. It shows much more than just the box itself, trying to give the user an impression of what the box would look like if used in reality. We only need half the backslashes in the `REVERSE` and `REPLACE` statements because we use `delimiter` to change the escape character from backslash to question mark.
[ [up](index.html) \| next ]

View File

@ -0,0 +1,63 @@
# Box Designs
*Boxes* can draw and remove the boxes whose designs are defined in its configuration file. This page is intended to describe the concept of a *box design*, clarify some terms used to describe a box design, and how to define your own box designs.
## General Box Layout
A box design consists of up to 16 so-called **shapes** which are labeled in a fashion similar to the points of the compass:
+---------+---------+-----------------+---------+---------+
| | | | | |
| NW | NNW | N | NNE | NE |
| | | | | |
+---------+---------+-----------------+---------+---------+
| | padding | |
| WNW | +-- - - - - - - - - - - - - - --+ | ENE |
| | | | | |
+---------+ +---------+
| | | | | |
| | original | |
| W | | input | | E |
| | text | |
| | | | | |
+---------+ +---------+
| | | | | |
| WSW | +-- - - - - - - - - - - - - - --+ | ESE |
| | padding | |
+---------+---------+-----------------+---------+---------+
| | | | | |
| SW | SSW | S | SSE | SE |
| | | | | |
+---------+---------+-----------------+---------+---------+
The sides of the box are sometimes referred to as *top* (instead of north), *right* (instead of east), *bottom* (south), and *left* (west), in order to avoid confusion with *shapes* of the same name. The group of shapes NW, NE, SE, and SW is referred to as the *corner shapes*. The groups of shapes between two corner shapes are called the *side shapes*.
## Shape Restrictions
A design definition does not necessarily need to include specifications for all 16 shapes. You only need to specify the shapes that you need. Of course, at least one shape must be specified.
- All shapes on a vertical side (inluding corners) must be of equal width.
- All shapes on a horizontal side (including corners) must be of equal height.
In order to let the box have a dynamic size, certain side shapes must be drawn repeatedly. Those shapes are called **elastic** shapes.
- At least one shape per side must be elastic.
- Corners may not be elastic.
- No two neighboring shapes may be elastic, i.e. there must always be at least one static shape in between two elastic shapes.
You don't really need to worry about these restrictions. *Boxes* will tell you if you violate any of them. So if *boxes* does not complain, your design is (at least syntactically) great.
## Open Box Sides
Many box designs require open box sides, for instance most regional comments. In response to that insight, it was decided to make empty box sides into a supported feature. Thus, if you define a box side to consist entirely of spaces, that side will be considered **open** and it will not appear in the output.
Of course, you don't need to actually put the empty shapes into the config file, but *boxes* will automagically generate empty shapes if they are needed. (Internally, boxes always need at least 8 shapes - the corners, and one shape per side.) When the box is generated, those empty sides will be left out. Thus, boxes can be created which are open on any side.
## Padding Area
The last thing to mention about a box design is the **padding area**, which surrounds the original input text as shown in the figure above. The padding area is located inside the actual box and consists only of spaces. It is frequently used to keep the text from coming too close to the box (that might not look so good in some cases) unless absolutely necessary. &quot;Absolutely necessary&quot; usually means that the user has specified a very small box size. It is also possible to control the padding from the command line, which is why the above figure shows the padding area as a dotted box.
[ [up](index.html) \| [next](config-syntax.html) ]

View File

@ -0,0 +1,26 @@
# A New Design, Step By Step
Finally, we will take a brief look at the step-by-step process of creating a new design. A complex new design can be done in less than five minutes!
1. **Create an empty box design.** The only entry so far between the `BOX` and `END` statements is an empty `SAMPLE` block.
1. **Draw your box.** Do it inside the sample block. Just draw it like you think it should look.
1. **Create the `SHAPE` block.** Create your shapes by pasting from the `SAMPLE` block. Remember that all lines in shape definitions must be of equal length.
1. **Add the other entries.** You must at least add the `ELASTIC` entry, but this is also the time to add any other entries you might need.
1. **Take care of quoting.** There are two ways to do that:
- If there are only a few double quotes or backslashes in your strings, tell your editor to double all backslashes in the `SHAPE` block for you. Do not double the backslashes before this point, or you will not be able to undo it so easily (see below).
Then escape the double quotes (`"`) by telling your editor to put a backslash in front of every double quote which is part of a string.
- If you've got a lot of double quotes or backslashes in your strings, simply choose some other characters to be the special characters. This is achieved via the [`delimiter` statement](config-syntax.html#delim).
1. **Do not leave your editor just yet!** Instead try out your design. This is because if you made a mistake with the line lengths or something, you can still easily undo the doubling of backslashes. Otherwise, it may become difficult to judge how long a line is.
1. **Refine your design.** Repeat appropriate steps until done.
It is precision work to finalize the box design. But this needs to be done only once, and the box design can be shared and reused easily.
[ [up](index.html) \| [next](config-complete_exp.html) ]

View File

@ -0,0 +1,153 @@
# Config File Syntax
The *boxes* config file is a succession of box design definitions.
Everything following a pound sign (`#`) is considered a **comment** (unless, of course, the pound sign is part of a string or something).
*Boxes* config files are case insensitive, i.e. upper/lower case does not matter.
### Box Design
<pre><b>BOX</b> <i>design_name</i>
entries_and_blocks
<b>END</b> <i>design_name</i></pre>
Every box design definition must have at least a `SHAPE` block, an `ELASTIC` list, and a `SAMPLE` block.
### Sample Block
<PRE><b>SAMPLE</b>
sample_image_of_box
<b>ENDS</b></PRE>
This is the box image used for the list of available designs. The reason why an image is not simply generated is that this way, the box can be shown in an environment in which it might actually be used, e.g. with some C code around (see the [boxes config file](https://github.com/{{ site.github }}/blob/master/boxes-config) for many examples).
The `ENDS` statement must stand on a line of its own, although it may be indented. Such a line cannot occur as part of the sample itself.
The `SAMPLE` block is a required entry in every box design definition.
### Shape Block
<PRE><b>SHAPE</b> {
<i>shape_name</i> (string_list)
<i>shape_name</i> (string_list)
...
}</PRE>
<i>`shape_name`</i> may be one of `nw`, `nnw`, `n`, `nne`, `ne`, `ene`, `e`, `ese`, `se`, `sse`, `s`, `ssw`, `sw`, `wsw`, `w`, or `wnw`, corresponding to the [figure shown earlier](config-general.html).
The `string_list` represents the shape itself, line by line. Note that all lines must have equal length. Add extra spaces if necessary. Not also that double quotes (`"`) which appear as part of a string must be escaped by a preceding backslash, so as not to terminate the string early. Consequently, all occurrences of backslashes must also be escaped by adding additional backslashes. The recommended process for creating a string is thus:
1. Type in the string as you think it should look.
1. Make your editor double all backslashes within the string.
1. Escape all double quotes within the string by adding more backslashes.
In Vim, for example, this can be achieved by marking the block, and then typing:
:s/\\/\\\\/g
:s/"/\\"/g
Here are a few examples of valid entries in a `SHAPE` block:
ne ("+++", "+ +", "+++")
SSE ("///", "\\\\\\")
ene ()
s ("\"")
The [`delimiter` statement](#delim) can be used to redefine the string delimiting character and the escape character, thus eliminating the above backslash problem.
The `SHAPE` block is a required entry in every box design definition.
### Elastic List
<PRE><b>ELASTIC</b> (<i>shape_name</i>, <i>shape_name</i>, ...)</PRE>
Simply lists the shapes which are *elastic*. Elastic shapes are repeated so that the box can grow and shrink to meet its requested size. Corner shapes may not be elastic. Naturally, there must always be at least one elastic shape per box side. No two neighboring shapes may be elastic. A typical `ELASTIC` entry would look like this:
elastic (n, e, s, w)
The elastic list is a required entry in every box design definition.
### Padding Block
<PRE><b>PADDING</b> {
side_or_group_of_sides <i>value</i>
side_or_group_of_sides <i>value</i>
...
}</PRE>
Defines the default [padding area](config-general.html#padding-area). Possible values for `side_or_group_of_sides` are `all`, `horizontal`, `vertical`, `top`, `left`, `right`, or `bottom`. A padding block may contain an arbitrary number of entries. Entries are read from top to bottom, so that later entries overwrite earlier entries. In the following example:
padding {
vertical 3
horiz 2
left 4
}
the padding is set to 3 blank lines above the text, 2 spaces to the right of the text, 3 blank lines below the text, and 4 spaces to the left of the text. These values can be overridden by a different specification on the command line using the **-p** option.
### Replace and Reverse Statements
<PRE><b>REPLACE</b> "<i>search_pattern</i>" <b>WITH</b> "<i>replacement_string</i>"
...
<b>REVERSE</b> "<i>search_pattern</i>" <b>TO</b> "<i>replacement_string</i>"
...</PRE>
These statements are used to perform substitutions on the text surrounded by a box. The `REPLACE` statements are executed on the input text when a box is being created. `REVERSE` statements have the same effect as `REPLACE` statements, but they are executed after a box has been removed.
In the simplest case, one string is replaced with another:
replace "\\*/" with "*-/"
reverse "\\*-/" to "*/"
The `REPLACE` statement in the above example may be used to quote closing comment tags in the C programming language by inserting a dash between the asterisk and the slash. The `REVERSE` statement undoes this effect when the box is removed.
The search pattern may be a regular expression, and the replacement string may include backreferences. This gives you quite a powerful means for text modification. The following example is used to insert a space between all characters of the input text:
replace "(.)" with "\\1 "
reverse "(.) " to "\\1"
There may be many `REPLACE`/`REVERSE` statements in one design definition. They will be executed one after the other, starting from the top.
Note that as in all strings, backslashes must be doubled, i.e. *boxes* "consumes one layer of backslashes". This is why in the first example, there are two backslashes at the beginning of the search pattern, when only one would have been needed to escape the star operator. Alternately, you may use the [`delimiter` statement](#delim) to change the string delimiting and escape character.
For more information on how to use regular expressions, please see `man 5 regexp`, under "Basic Regular Expressions" or any other source.
### Indentation Mode
<PRE><b>INDENT</b> "<i>indentmode</i>"</PRE>
This sets the default indentation mode for a design. Possible values for <i>`indentmode`</i> are `"box"`, `"text"`, and `"none"`. The indent mode specifies how existing text indentation is treated.
- `"box"`, which is the default setting, will cause the box to be indented by the same number of spaces as the text was. The text itself will not be indented within the box, though.
- `"text"` will not indent the box, but instead retain the text indentation inside the box.
- `"none"` will simply throw away all indentation.
For examples on all three indentation modes please refer to the [example page]({{ site.baseurl}}/examples.html#indent).
<a class="bxOffsetAnchor" name="delim"></a>
### String Delimiters
<PRE><b>DELIM[ITER]</b> <i>chars</i></PRE>
*`chars`* must consist of exactly two characters, the first of which being the escape character, and the second the string delimiter. No quotes must be placed around those two characters.
The effect is that until the end of the current design or until the next `DELIMITER` statement, all strings must be enclosed not by the usual double quotes (`"`), but instead by the character you specify.
Also, the delimiter may be escaped not by the usual backslash (`\`), but instead by the escape character you specify.
For example, consider the literal string `foo":"\"\\bar`:
"foo\":\"\\\"\\\\bar"
Using a `DELIMITER` statement, this looks much simpler:
delimiter ?:
:foo"?:"\"\\bar:
The escape character may be any character you choose. The string delimiter, however, may only be one out of the following:
"~'`!@%&*=:;<>?/|.\
This set may change, but *boxes* will tell you your choices if you make a mistake.
### Name of Author
<PRE><b>AUTHOR</b> &quot;<i>name_of_author</i>&quot;</PRE>
Simply states who the ingenious guy/girl was who created the design. This entry is used when displaying the list of designs (`boxes -l`). The name should include the email address. Ideally, the entry should be usable "as is" in a `TO:` mail header, like this:
author "Thomas Jensen <tj@foobar.com>"
### General Entries
<PRE><b>keyword</b> &quot;<i>string_value</i>&quot;</PRE>
In addition to the author entry, there may be any number of other entries of the above form, giving any kind of information. The [boxes config file](https://github.com/{{ site.github }}/blob/master/boxes-config) includes the entries `CREATED`, `REVISION`, and `REVDATE`, to indicate the creation timestamp, revision number, and timestamp of the latest revision, respectively. These other entries are not yet used by *boxes*, though, and will simply be ignored.
[ [up](index.html) \| [next](config-step.html) ]

25
_includes/docs/filters.md Normal file
View File

@ -0,0 +1,25 @@
# What are filters?
[Filters](http://en.wikipedia.org/wiki/Filter_%28software%29) are generally programs which read some input text from standard input, perform some modifications on it, and write the modified text to standard output. While a single filter can be used individually, they are frequently strung together to form a pipeline. *Boxes* is such a filter program.
Some text editors *support filters*, which is to say they offer a way to let filter programs make changes to the text being edited. By pressing a key, the user tells the editor to start the filter program (e.g. *boxes*) and feed it the lines of text selected in the editor. Those lines are subsequently replaced with the output from the filter program.
**Here's an example using *boxes*:**
Imagine your editor (in this case, it's [Vim](http://www.vim.org/)) shows the following C code (it could be any text, of course):
<IMG SRC="{{ site.baseurl}}/images/filter1.gif" WIDTH="619" HEIGHT="272" ALT="text before filtering" />
Now you mark some of the lines ...
<IMG SRC="{{ site.baseurl}}/images/filter2.gif" WIDTH="619" HEIGHT="272" ALT="text to be filtered is marked" />
... and press the key which makes vim call the filter program *boxes*:
<IMG SRC="{{ site.baseurl}}/images/filter3.gif" WIDTH="619" HEIGHT="272" ALT="after the filter was applied" />
Voil&aacute;! The marked lines have been fed to *boxes* and replaced by the output of *boxes*. You've got yourself a box! Of course the same mechanism works for box removal - or anything else you can find a filter for. :smile:
Most major text editors support filters, among them [Vim](http://www.vim.org/), [Emacs](http://www.emacs.org/), and [Jed](http://www.jedsoft.org/jed/). There are certainly many, many more.
Please see the [installation section](install.html) in the *boxes* docs for more info on how to make your editor work with *boxes*.

40
_includes/docs/index.md Normal file
View File

@ -0,0 +1,40 @@
# Documentation
1. General
a. [Overview]({{ site.baseurl}}/about.html) &amp; [Features]({{ site.baseurl}}/about.html#some-of-the-features)
b. [News]({{ site.baseurl}}/)
c. [FAQ](https://github.com/{{ site.github }}/wiki/FAQ) (Frequently Asked Questions)
1. [Legal Stuff](legal.html)
1. [Examples]({{ site.baseurl}}/examples.html)
a. [Default Action]({{ site.baseurl}}/examples.html)
b. [Choosing a Different Design]({{ site.baseurl}}/examples.html#design)
c. [The &quot;<TT>-a</TT>&quot; option - Alignment, Positioning &amp; Line Justification]({{ site.baseurl}}/examples.html#position)
d. [Size Specification]({{ site.baseurl}}/examples.html#size)
e. [Padding]({{ site.baseurl}}/examples.html#padding)
f. [Regional Comments]({{ site.baseurl}}/examples.html#comments)
g. [Removal of Boxes]({{ site.baseurl}}/examples.html#removal)
h. [Indentation Handling]({{ site.baseurl}}/examples.html#indent)
i. [Use of Regular Expressions]({{ site.baseurl}}/examples.html#regexp)
1. Creating Your Own Designs
a. [Introduction and General Concepts](config-general.html)
b. [Configuration File Syntax](config-syntax.html)
c. [Step-by-Step Guide to a New Design](config-step.html)
d. [Complete examples of box designs](config-complete_exp.html)
e. [List of preconfigured designs]({{ site.baseurl}}/box-designs.txt)
1. [Text Editor Integration](install.html)
a. [Integration with Vim](install.html)
b. [Integration with Jed](install.html#jed)
c. [Integration with Emacs](install.html#emacs)
1. Development
a. [Contributing]({{ site.baseurl}}/contributing.html)
b. [List of Contributors]({{ site.baseurl}}/contributing.html#contributors)
c. [Chronological Change Log](https://github.com/{{ site.github }}/commits/master)
1. [Download]({{ site.baseurl}}/download.html)
1. [*Boxes* manual page](boxes-man-1.html) (also in [troff format](https://github.com/{{ site.github }}/blob/master/doc/boxes.1.in))

116
_includes/docs/install.md Normal file
View File

@ -0,0 +1,116 @@
# Text Editor Integration
This section assumes you already have a working binary of *boxes*. Binaries for some platforms can be obtained through the [download page]({{ site.baseurl}}/download.html). Should your platform be missing from the list, you can still download the source distribution and compile your own binary. This sounds harder than it is.
Although *boxes* can be useful when used on the command line, the more frequent use case will be as a filter tied to your editor. So, how can *boxes* be tied to your editor?
Example config file entries are featured so far for [Vim](http://www.vim.org/), [Jed](http://www.jedsoft.org/jed/), and [Emacs](http://www.gnu.org/software/emacs/). If you know how to to this in other editors, please drop me a line!
## Integration with Vim
To call filters from vim, you need to press `!` in visual mode or `!!` in normal mode. So the easiest way to tie in *boxes* with vim is by adding the following four lines to your *.vimrc*:
vmap ,mc !boxes -d c-cmt<CR>
nmap ,mc !!boxes -d c-cmt<CR>
vmap ,xc !boxes -d c-cmt -r<CR>
nmap ,xc !!boxes -d c-cmt -r<CR>
`<CR>` should be there literally; just paste the lines directly from your browser window. This would comment out the current line or the lines you have marked when you press `,mc` (for *make comment*). Comments can be removed in the same way by pressing `,xc`. Should you feel that `,mc` is too long a combination to type, feel free to choose a shorter one. The above example assumes you are using the standard boxes config file, which features the *c-cmt* design. Of course, the same technique works for any other designs.
While the above example is nice, it does not offer much convenience when you are editing different languages a lot, because you need to remember the hotkey for each different box design. Fortunately, vim has a feature called *autocommands*. They can be used to automatically change the meaning of a key combination depending on what file you edit (any many other things too, of course). Autocommand syntax is
au[tocmd] [group] {event} {pat} [nested] {cmd}
We can leave out the group. For `{event}`, we choose `BufEnter`, which is generated every time you enter a new buffer, e.g. when starting vim or when switching between open files. `{pat}` is a file glob, and `{cmd}` is our call to *boxes*.
The lines below are from the author's *.vimrc*. They can be pasted directly from your browser window. Their effect is that `,mc` and `,xc` always generate the correct comments for many languages, including C, C++, HTML, Java, lex, yacc, shell scripts, Perl, etc. The default key binding is to generate shell comments using a pound sign (file glob of `*` at the start).
autocmd BufEnter * nmap ,mc !!boxes -d pound-cmt<CR>
autocmd BufEnter * vmap ,mc !boxes -d pound-cmt<CR>
autocmd BufEnter * nmap ,xc !!boxes -d pound-cmt -r<CR>
autocmd BufEnter * vmap ,xc !boxes -d pound-cmt -r<CR>
autocmd BufEnter *.html nmap ,mc !!boxes -d html-cmt<CR>
autocmd BufEnter *.html vmap ,mc !boxes -d html-cmt<CR>
autocmd BufEnter *.html nmap ,xc !!boxes -d html-cmt -r<CR>
autocmd BufEnter *.html vmap ,xc !boxes -d html-cmt -r<CR>
autocmd BufEnter *.[chly],*.[pc]c nmap ,mc !!boxes -d c-cmt<CR>
autocmd BufEnter *.[chly],*.[pc]c vmap ,mc !boxes -d c-cmt<CR>
autocmd BufEnter *.[chly],*.[pc]c nmap ,xc !!boxes -d c-cmt -r<CR>
autocmd BufEnter *.[chly],*.[pc]c vmap ,xc !boxes -d c-cmt -r<CR>
autocmd BufEnter *.C,*.cpp,*.java nmap ,mc !!boxes -d java-cmt<CR>
autocmd BufEnter *.C,*.cpp,*.java vmap ,mc !boxes -d java-cmt<CR>
autocmd BufEnter *.C,*.cpp,*.java nmap ,xc !!boxes -d java-cmt -r<CR>
autocmd BufEnter *.C,*.cpp,*.java vmap ,xc !boxes -d java-cmt -r<CR>
autocmd BufEnter .vimrc*,.exrc nmap ,mc !!boxes -d vim-cmt<CR>
autocmd BufEnter .vimrc*,.exrc vmap ,mc !boxes -d vim-cmt<CR>
autocmd BufEnter .vimrc*,.exrc nmap ,xc !!boxes -d vim-cmt -r<CR>
autocmd BufEnter .vimrc*,.exrc vmap ,xc !boxes -d vim-cmt -r<CR>
<a name="jed">&nbsp;</a>
## Integration with Jed
*Andreas Heiduk* (@asheiduk) kindly provided the following excerpt from his *.jedrc*:
%!% Ripped from "pipe.sl"
variable Last_Process_Command = Null_String;
define do_process_region(cmd) {
variable tmp;
tmp = make_tmp_file ("/tmp/jedpipe");
cmd = strncat (cmd, " > ", tmp, " 2>&1", 4);
!if (dupmark ()) error ("Mark not set.");
if (pipe_region (cmd))
{
error ("Process returned a non-zero exit status.");
}
del_region ();
() = insert_file (tmp);
() = delete_file (tmp);
}
define process_region ()
{
variable cmd;
cmd = read_mini ("Pipe to command:", Last_Process_Command, "");
!if (strlen (cmd)) return;
Last_Process_Command = cmd;
do_process_region(cmd);
}
%-----------------------------------------------------------------------
if( BATCH == 0 ){
setkey("process_region", "\e|"); % ESC-Pipe :-)
add_completion("process_region");
% define some often used filters
setkey("do_process_region(\"tal\")", "\et") % tal on esc-t
}
I think it calls [tal](http://www.thomasjensen.com/software/tal/) when you press `ESC-t` (second but last line). Thus, you would have to add a similar line to call *boxes*.
<a name="emacs">&nbsp;</a>
## Integration with Emacs
[Jason L. Shiffer](mailto:jshiffer@zerotao.com) kindly submitted the following information on integrating *boxes* with Emacs:
The simple interface (only a single box style, but easy):
(defun boxes-create ()
(interactive)
(shell-command-on-region (region-beginning) (region-end) "boxes -d c-cmt2" nil 1 nil))
(defun boxes-remove ()
(interactive)
(shell-command-on-region (region-beginning) (region-end) "boxes -r -d c-cmt2" nil 1 nil))
Jason also wrote a [*boxes* mode for Emacs](boxes.el). Remember to update its design list when you add new designs to your config file.

9
_includes/docs/legal.md Normal file
View File

@ -0,0 +1,9 @@
# Legal Terms
*Boxes* is free software under the terms of the <A TARGET="_blank" HREF="http://www.gnu.org/licenses/gpl-2.0.html#TOC1">GNU General Public License, version&nbsp;2</A> (GNU GPL), a copy of which you should have received with your source archive (filename of *COPYING* or *LICENSE*).
Among many other things, the GNU GPL states that there is **no warranty** whatsoever. If *boxes* filters away your master's thesis that's your problem! You are using the program entirely at your own risk. On the other hand, it is free. Here is an excerpt from the GNU GPL:
> **11.** Because the program is licensed free of charge, there is no warranty for the program, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair or correction.
> **12.** In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may modify and/or redistribute the program as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the program (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the program to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages.

33
_includes/download.md Normal file
View File

@ -0,0 +1,33 @@
# Download *Boxes*
*Boxes* is free software under the <A TARGET="_blank" HREF="http://www.gnu.org/licenses/gpl-2.0.html#TOC1">GNU General Public License</A> (GNU GPL), version 2.
The current release is **version 1.1.1**. For older revisions, feel free to browse the [release history](https://github.com/{{ site.github }}/wiki/Release-History).
## Sources
The *boxes* sources are now all on GitHub, including previous releases:
[https://github.com/{{ site.github }}](https://github.com/{{ site.github }})
For the (historical) record, the source of the outdated version 1.1 is also on [metalab](ftp://metalab.unc.edu/pub/Linux/utils/text/boxes-1.1.src.tar.gz) (FTP).
## Binaries
The author supports binaries for intel/linux and intel/win32. *Boxes* has been compiled on a very wide variety of platforms, and for older releases, some of these binaries are available via the [release history](https://github.com/{{ site.github }}/wiki/Release-History). If you have binaries for different and/or new platforms, please send them in!
**Windows** and **Linux** binary download:
[https://github.com/{{ site.github }}/releases/latest](https://github.com/{{ site.github }}/releases/latest)
**MacOS X**
According to *boxes* user *Michel*, *boxes* can be installed on MacOS X (32bit) by simply typing `brew install boxes`. (Information of October 3, 2012)
## Miscellaneous
- The current [list of available box designs]({{ site.baseurl }}/box-designs.txt).
Want to see your design in the official config file? Submit it as a [pull request](https://github.com/{{ site.github }}/pulls) on GitHub. If this seems too complicated, or you are not an IT person, feel free to send email, too. Emails take much longer to be processed, though.
- A <A HREF="https://github.com/{{ site.github }}/issues/4" target="_blank">vim syntax
file</A> to enable the vim editor to use syntax highlighting with *boxes* config files (beta state).

305
_includes/examples.md Normal file
View File

@ -0,0 +1,305 @@
# Examples
Remember, *boxes* is designed to be tied to your editor as a [text filter](docs/filters.html). So these examples assume you need only push a single key (or at least very few) in order to call *boxes*. Don't be worried by seemingly long argument lists - you'll only have to type them once.
Unless stated otherwise, the input used for these examples is the following:
Different all twisty a
of in maze are you,
passages little.
## Default action
`boxes`
/**************************/
/* Different all twisty a */
/* of in maze are you, */
/* passages little. */
/**************************/
Draws a standard box of the first valid design found in your config file. If you have the config file as it comes with the *boxes* distribution, you get a &quot;C&quot; box, as you can see above.
<a class="bxOffsetAnchor" name="design"></a>
## Choosing a different design
`boxes -d parchment`
________________________
/\ \
\_|Different all twisty a|
|of in maze are you, |
|passages little. |
| ___________________|_
\_/_____________________/
The **-d** *design_name* option selects another design from your config file.
<a class="bxOffsetAnchor" name="position"></a>
## Positioning of text inside box
`boxes -d diamonds -a hcvc`
/\ /\ /\
/\//\\/\ /\//\\/\ /\//\\/\
/\//\\\///\\/\//\\\///\\/\//\\\///\\/\
//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
\\//\/ \/\\//
\/ \/
/\ Different all twisty a /\
//\\ of in maze are you, //\\
\\// passages little. \\//
\/ \/
/\ /\
//\\/\ /\//\\
\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
\/\\///\\\//\/\\///\\\//\/\\///\\\//\/
\/\\//\/ \/\\//\/ \/\\//\/
\/ \/ \/
The **-a** *format* option can be used to position the input text inside a box which is larger than needed for our text. `hcvc` stands for &quot;<STRONG>h</STRONG>orizontally <STRONG>c</STRONG>entered, <STRONG>v</STRONG>ertically <STRONG>c</STRONG>entered&quot;.
Note that the box was drawn in this size because the shapes that compose it are very big, so that it is not possible to fit the box tighter around our text. Note also that the input lines themselves are *not* centered; `hc` only centers the input text block as a whole.
## Line justification
`boxes -d simple -a jr`
************************
*Different all twisty a*
* of in maze are you,*
* passages little.*
************************
This uses the third possible argument to the **-a** option, `j`. `jr` stands for &quot;<STRONG>j</STRONG>ustification <STRONG>r</STRONG>ight&quot;.
## Quick alignment/positioning
`boxes -d dog -a c`
__ _,--="=--,_ __
/ \." .-. "./ \
/ ,/ _ : : _ \/` \
\ `| /o\ :_: /o\ |\__/
`-'| :="~` _ `~"=: |
\` (_) `/
.-"-. \ | / .-"-.
.---{ }--| /,.-'-.,\ |--{ }---.
) (_)_)_) \_/`~-===-~`\_/ (_(_(_) (
( Different all twisty a )
) of in maze are you, (
( passages little. )
) (
'---------------------------------------'
Since noone really wants to type `-a hcvcjc` only to actually center text inside a box, there are shorthand notations (`l`, `c`, and `r`).
Note the blank line at the bottom of the box (after `little`, but before the dashes) which is necessary to make the bottom of the box look right. If the blank line was not there, the box would end on a closing parenthesis, thus looking broken.
<a class="bxOffsetAnchor" name="size"></a>
## Box size specification
`boxes -d html -s 40`
<!-- ------------------------------- -->
<!-- Different all twisty a -->
<!-- of in maze are you, -->
<!-- passages little. -->
<!-- ------------------------------- -->
Using `-s 40`, we have set the box width to 40 characters.
## Box size specification (2)
`boxes -d peek -a c -s 40x11`
/* _\|/_
(o o)
+----oOO-{_}-OOo----------------------+
| |
| |
| Different all twisty a |
| of in maze are you, |
| passages little. |
| |
| |
+------------------------------------*/
Using `-s 40x11`, you can set both width and height. Setting just the height is possible with `-s x11` (note the leading `x` on the argument).
<a class="bxOffsetAnchor" name="padding"></a>
## Text Padding
`boxes -d shell -p a1l2`
###########################
# #
# Different all twisty a #
# of in maze are you, #
# passages little. #
# #
###########################
Normally, the padding values depend on the design. The &quot;shell&quot; design has no default padding, so we can see the effects of our command line option unchanged. `a1l2` stands for &quot;<STRONG>a</STRONG>ll <STRONG>1</STRONG>, <STRONG>l</STRONG>eft <STRONG>2</STRONG>&quot;, and tells *boxes* to put one space (or empty line, in the vertical direction) around the input text block, except for the left side where two spaces shall be used.
## Text Padding (2)
`boxes -p h0v0`
/************************/
/*Different all twisty a*/
/*of in maze are you, */
/*passages little. */
/************************/
This uses again the default design, which by default features a horizontal padding value of one space (as you know from the very first example). By specifying `-p h0v0`, we set all padding to zero (&quot;<STRONG>h</STRONG>orizontal <STRONG>0</STRONG>, <STRONG>v</STRONG>ertical <STRONG>0</STRONG>&quot;). In this case, the same could have been achieved by `-p h0` or `-p a0`.
<a class="bxOffsetAnchor" name="comments"></a>
## Regional comments
Imagine you want to comment out the following C code:
if (!s2 || *s2 == '\0')
return (char *) s1; /* error 1 */
if (!s1 || *s1 == '\0')
return NULL; /* error 2 */
if (skip < 0)
skip = 0; /* foo bar */
`boxes -d c-cmt`
/* if (!s2 || *s2 == '\0') */
/* return (char *) s1; /* error 1 *\/ */
/* if (!s1 || *s1 == '\0') */
/* return NULL; /* error 2 *\/ */
/* if (skip < 0) */
/* skip = 0; /* foo bar *\/ */
Note that the closing comment tags in the input text have been escaped by adding a backslash between the asterisk and the slash. This way, the comments that have been commented out along with the rest of the code will not interfere with the new comments.
`boxes -r`
if (!s2 || *s2 == '\0')
return (char *) s1; /* error 1 */
if (!s1 || *s1 == '\0')
return NULL; /* error 2 */
if (skip < 0)
skip = 0; /* foo bar */
Should you decide to reactivate the code previouly commented out, the escaped closing comment tags are changed back into normal ones.
This is achieved by the `replace` and `reverse` statements in the config file entry describing this particular box design. If you want this to work recursively, simply add more such statements.
<a class="bxOffsetAnchor" name="removal"></a>
## Box removal
Imagine your once beautiful box in &quot;C&quot; style like this in your editor, after you are done editing the text inside:
/********************************************************************/
/* Generate sorted listing of available box styles.
Uses design name from BOX spec and sample picture plus author.
*/
/* RETURNS: != 0 on error (out of memory) */
== 0 on success */
/********************************************************************/
`boxes -r`
Generate sorted listing of available box styles.
Uses design name from BOX spec and sample picture plus author.
RETURNS: != 0 on error (out of memory)
== 0 on success
The box is correctly removed even though it's been badly damaged by editing of the text inside. Obviously, the box design was correctly autodected as being &quot;C&quot;.
Note there is only a single leading space in the output text, whereas there are two leading spaces in the input text. This is because the &quot;C&quot; box design has a default horizontal padding of one space. Since *boxes* assumes it has added the padding space, it also attempts to removes the same number of spaces when removing the box. Thus, if you were to add a new box around the text, the box internal indentation would be retained. It is easily possible to use this feature to make an editor key mapping which repairs a box for you (see [installation]({{ site.baseurl}}/docs/install.html) in the documentation section).
## Box removal (2)
Imagine an HTML comment box like the follwing, and imagine that *boxes* does not correctly autodetect it as being an HTML box:
<!-- - - - - - - - - - - - - -->
<!-- Different all twisty a -->
<!-- of in maze are you, -->
<!-- passages little. -->
<!-- - - - - - - - - - - - - -->
`boxes -r -d html`
Different all twisty a
of in maze are you,
passages little.
In cases where design autodetection fails, **-d** *design_name* can be added to the **-r** command in order to tell *boxes* which design exactly to remove. It is always a good thing to use the **-d** option, because it makes autodetection unnecessary. Autodetection takes more time, because the entire config file must be parsed instead of just the one design needed, and all designs must be matched against the input text in order to see which one fits best.
<a class="bxOffsetAnchor" name="indent"></a>
## Indentation handling
For this example, our input text is indented by four spaces:
Different all twisty a
of in maze are you,
passages little.
`boxes -d java-cmt -i box`
// Different all twisty a
// of in maze are you,
// passages little.
The default indent mode is `box`, which indents the box by the same value as the input text was indented. As shown here, this is useful when adding regional comments to your source code, e.g. when &quot;commenting out&quot; a large portion of your code. Most people generally prefer to indent comments by the same value as the code they refer to, so they don't upset the code structure.
`boxes -d vim-cmt -i text`
" Different all twisty a
" of in maze are you,
" passages little.
By specifying `-i text`, the box is made to start at column zero and any input text indentation is retained inside the box.
`boxes -d pound-cmt -i none`
# Different all twisty a
# of in maze are you,
# passages little.
Finally, it is also possible to throw away any indentation altogether by specifying `-i none`.
<a class="bxOffsetAnchor" name="regexp"></a>
## Use of Regular Expressions
Global Variables
`boxes -d headline`
/*************************************/
/* G l o b a l V a r i a b l e s */
/*************************************/
The `replace` and `reverse` statements may contain regular expressions and backreferences, which can be used for more elaborate text modifications. The example shown here, where spaces are inserted between the individual characters, is configured [like this](https://github.com/{{ site.github }}/blob/master/boxes-config#L1895-L1898).
`boxes -d headline -r`
Global Variables

17
_includes/footer.html Normal file
View File

@ -0,0 +1,17 @@
<div class="container-fluid">
<div class="row-fluid">
<div class="span12 footer navbar-inverse navbar-fixed-bottom">
<p class="copyright"><b>{{ site.name }}</b> &copy;1999 by
<A target="_blank" HREF="http://thomasjensen.com/">Thomas Jensen</A> {{ page.bxemail }}<br/>
Powered by <a target="_blank" href="http://jekyllrb.com">Jekyll</a>,
theme by <a target="_blank" href="https://github.com/scotte/jekyll-clean">Scott Emmons</a>
under <a target="_blank" href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution</a></p>
</div>
</div>
</div>
{% include disqus-counts.html %}
{% include analytics.html %}
</body>
</html>

54
_includes/header.html Normal file
View File

@ -0,0 +1,54 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ site.name }} - {% if page.title | size > 0 %}{{ page.title }}{% else %}{{ site.description }}{% endif %}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% if page.redirect %}
<meta name="robots" content="noindex,follow">
<meta http-equiv="refresh" content="0; url={{ page.redirect }}" />
{% else %}
<meta name="author" content="Thomas Jensen" />
<meta name="robots" content="index,follow" />
<meta name="description" content="{{ site.description }}" />
<meta name="keywords" content="ascii, ascii art, filter, command line, box, boxes, box drawing" />
<script src="{{ site.baseurl }}/js/jquery.min.js"></script>
<script src="{{ site.baseurl }}/js/bootstrap.min.js"></script>
<link href="{{ site.baseurl }}/css/bootstrap.min.css" rel="stylesheet">
<link href="{{ site.baseurl }}/css/theme.css" rel="stylesheet">
{% endif %}
</head>
<body>
{% if page.redirect %}{% else %}
<div class="container-fluid">
<div class="row-fluid">
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ site.baseurl }}/">{{ site.name }}</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="{{ site.baseurl }}/about.html">About</a></li>
<li class="active"><a href="{{ site.baseurl }}/examples.html">Examples</a></li>
<li class="active"><a href="{{ site.baseurl }}/docs/index.html">Documentation</a></li>
<li class="active"><a href="{{ site.baseurl }}/contributing.html">Contributing</a></li>
<li class="active"><a href="{{ site.baseurl }}/download.html"><b>Download</b></a></li>
<li class="active visible-xs-block"><a href="{{ site.baseurl }}/links.html">Links</a></li>
{% if site.github != '' %}
<li class="active"><a href="https://github.com/{{ site.github }}">Github</a></li>
{% endif %}
</ul>
</div>
</div>
</div>
</div>
{% endif %}

View File

@ -0,0 +1,6 @@
<h1>Links</h1>
<ul>
<li><a target="_blank" href="https://github.com/{{ site.github }}/releases/latest">Latest Release</a></li>
<li><a target="_blank" href="https://github.com/{{ site.github }}/wiki/FAQ">FAQ</a></li>
<li><a target="_blank" href="http://www.gnu.org/licenses/gpl-2.0.html#TOC1">License: GPL 2.0</a></li>
</ul>

18
_includes/sidebar.html Normal file
View File

@ -0,0 +1,18 @@
<div class="sidebar well">
<img src="{{ site.baseurl}}/images/boxes.png" vspace="12" class="hidden-md" style="margin-left:-9px;" />
<img src="{{ site.baseurl}}/images/boxes-md.png" vspace="12" class="visible-md" style="margin-left:3px;" />
<div style="clear:both;">{{ site.description }}</div>
</div>
<div class="sidebar well">
<h1>Recent Posts</h1>
<ul>
{% for post in site.posts limit:6 %}
<li><a href="{{ site.baseurl}}{{ post.url }}">{{ post.title }}</a></li>
{% endfor %}
</ul>
</div>
<div class="sidebar well">
{% include links-list.html %}
</div>

25
_layouts/default.html Normal file
View File

@ -0,0 +1,25 @@
{% include header.html %}
{% if page.redirect %}
<div>
This page has moved to <A HREF="{{ page.redirect }}">{{ page.redirect }}</A>.
<P>Please update your bookmarks.
</div>
</body>
</html>
{% else %}
<div class="container container-left">
<div class="row">
<div class="col-md-3 hidden-xs">
{% include sidebar.html %}
</div>
<div class="col-md-9">
{{ content }}
</div>
</div>
</div>
{% include footer.html %}
{% endif %}

40
_layouts/post.html Normal file
View File

@ -0,0 +1,40 @@
{% include header.html %}
<div class="container container-left">
<div class="row">
<div class="col-md-3 hidden-xs">
{% include sidebar.html %}
</div>
<div class="col-md-9">
<div class="article">
<div class="well">
<h1><a href="{{ site.baseurl}}{{ page.url }}">{{ page.date | date: "%b %-d, %Y" }} - {{ page.title }}</a></h1>
{% if site.comments == true and page.comments == true and site.disqus != '' %}
<p class="author"><a href="#disqus_thread">Comments</a></p>
{% endif %}
<div class="post-content">
{{ content }}
</div>
{% if page.comments %}
<div id="disqus_thread">
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
{% endif %}
</div>
</div>
<div class="pagination">
{% if page.next %}
<a class="btn btn-default" href="{{ site.baseurl}}{{ page.next.url }}" class="next">Newer Post</a>
{% endif %}
{% if page.previous %}
<a class="btn btn-default" href="{{ site.baseurl}}{{ page.previous.url }}" class="previous">Older Post</a>
{% endif %}
</div>
</div>
</div>
</div>
{% include disqus-comments.html %}
{% include footer.html %}

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Dev Update"
date: 1999-05-30 14:41:00 +0100
comments: false
---
Resumed development after pause of nearly two months. Removing boxes worked for the first time. It will be fuzzy! :smiley: Didn't test yet. Be patient, I can only spend about a half hour to 45 minutes per day on this. (Less than I want to. :confused:)

View File

@ -0,0 +1,8 @@
---
layout: post
title: "List of box designs"
date: 1999-06-02 13:20:00 +0100
comments: false
---
Added [list of box designs]({{ site.baseurl }}/box-designs.txt), which will from now on be updated periodically. Send me new designs (as config files, of course, not as images) and I'll add 'em if I like 'em.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "First alpha version"
date: 1999-06-04 13:58:00 +0100
comments: false
---
Added "Current Snapshot" to download section. This will be updated semi-automatically whenever a minor change was implemented. This particular snapshot just added already includes untested box removal functionality. Consider this an **alpha version**.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Alpha version 2"
date: 1999-06-16 13:15:00 +0100
comments: false
---
Added Solaris binary and source archive for current **alpha2 version**. Other binaries will be made available when development has reached a serious beta state. Most features are already in, but expect a padding option and some minor stuff.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Beta version 2"
date: 1999-06-30 14:51:00 +0100
comments: false
---
Added Solaris binary and source archive for current **beta2 version**. Barring popular request, all features are in. Do still expect enhancements on the design autodetector, GNU configure support (porting) and POSIX support for the regular expression stuff. In other words, go ahead and use this beta, because the user side won't really be affected by the planned changes.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Web page redesign"
date: 1999-07-04 19:42:00 +0100
comments: false
---
Web page redesign. Lots of docs coming up!

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Beta development progresses"
date: 1999-08-18 21:23:00 +0100
comments: false
---
A major step in development after a long pause. Improvements include changes to the config file syntax which take care of the backslash explosion. Remember to download the current snapshot rather than the other source archives. Keeping track of boxes development is easiest via the [log page](https://github.com/{{ site.github }}/commits/master), which is the most up-to-date page of this site.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Beta version 5 released"
date: 1999-08-19 00:32:00 +0100
comments: false
---
Updated the download page with new binaries (**beta version 5**). There are currently no known problems with this version.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "First stable release: boxes v1.0"
date: 1999-08-22 14:13:00 +0100
comments: false
---
**VERSION 1.0 IS OUT!** We finally left the beta stage behind and moved to a stable release. Get it from the download page.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "New binaries available for download"
date: 1999-08-31 18:02:00 +0100
comments: false
---
Many contributions to the download page have been made by various people, including FreeBSD ports, a Solaris 2.5.1 port, and Red Hat RPM packages. The [current snapshot](https://github.com/{{ site.github }}) now compiles on more platforms (even on OSF/1, when `-D_ANSI_C_SOURCE` is added to the regexp compilation stuff - someone got a binary?).

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Boxes is now integrated with Emacs"
date: 1999-11-03 01:06:00 +0100
comments: false
---
*Jason L. Shiffer* wrote an Emacs mode for *boxes*. So all of you who've been waiting for information on *boxes* integration with Emacs, please see the [installation page]({{ site.baseurl }}/docs/install.html#emacs).

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Boxes now runs on Windows!"
date: 2000-03-09 18:27:00 +0100
comments: false
---
The much requested **Win32 Port** has been made available on the [download page]({{ site.baseurl }}/download.html) (at the bottom of the "Binary Distributions" section)!

View File

@ -0,0 +1,8 @@
---
layout: post
title: "New release: boxes v1.0.1"
date: 2000-03-18 01:30:00 +0100
comments: false
---
**Version 1.0.1 is out.** Version 1.0.1 is essentially identical to the 08-Nov-1999 snapshot, with the addition of the Win32 port by *Ron Aaron*. Get it from the download page.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Compiling on Red Hat Linux 7 [obsolete]"
date: 2000-12-01 13:45:00 +0100
comments: false
---
*Edward Roper* says that the `-traditional` flag should be removed from the regexp *Makefile* to compile on Red Hat Linux 7.0. This minor compilation issue was reported by other Linux people as well. You must do this manually until the next release.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Updated Emacs mode"
date: 2000-12-18 14:03:00 +0100
comments: false
---
*Jason L. Shiffer* has just updated his Emacs mode for *boxes* to automatically adapt to new box styles.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Boxes moves to boxes.thomasjensen.com"
date: 2002-02-05 21:51:00 +0100
comments: false
---
*Boxes* has moved to a new home: [http://boxes.thomasjensen.com/](http://boxes.thomasjensen.com/). This will help keep *boxes* available to you for years to come! :smile:

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Linux User Magazine reports on boxes"
date: 2003-11-20 21:00:00 +0100
comments: false
---
Boxes in the press: The 12/2003 issue of [Linux User Magazine](http://www.linux-user.de/) (German language) features an article on ASCII Art software by *Andreas Kneib*. The article covers [figlet](http://www.figlet.org/), cadubi, and *boxes*.

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Linux Magazine reports on boxes"
date: 2003-12-09 22:23:00 +0100
comments: false
---
Boxes in the press: *Andreas Kneib's* article was translated into English and now appears in issue 38 (January 2004) of Linux Magazine! Here's the [direct link to the article](http://www.linux-magazine.com/issue/38/ASCII_Graphics.pdf).

View File

@ -0,0 +1,8 @@
---
layout: post
title: "New designs, new option, improved Emacs mode"
date: 2006-02-26 15:14:00 +0100
comments: false
---
I finally put some new box designs submitted by users of *boxes* up on the download page. Also, there is a new patch by *Elmar Loos*, who added a "repair" option `-m` to *boxes*. Using `-m`, you can remove a damaged box and redraw it in one go. And last but not least, *Jason Shiffer* updated his [emacs mode for boxes]({{ site.baseurl }}/docs/install.html#emacs).

View File

@ -0,0 +1,8 @@
---
layout: post
title: "Linux.com reports on boxes"
date: 2006-06-16 14:01:00 +0100
comments: false
---
Boxes in the press: *Shashank Sharma* wrote an article on boxes for Linux.com. Here's the [direct link to the article](http://www.linux.com/archive/feature/54970).

View File

@ -0,0 +1,8 @@
---
layout: post
title: "New snapshot version which solves flex problems"
date: 2006-07-12 23:50:00 +0100
comments: false
---
A new code snapshot is available on the download page. Most notably, it includes *Andreas Heiduk's* (@asheiduk) patch for compilation with present-day flexes.

View File

@ -0,0 +1,10 @@
---
layout: post
title: "New release: boxes v1.1"
date: 2006-07-23 23:07:00 +0100
comments: false
---
**Version 1.1 is out**. Version 1.1 is essentially a maintenance release, which solves all compilation and compatibility issues reported to the author. This mainly affected modern Linuxes. I took the opportunity to also apply all patches that had been submitted, and added tab handling options for leading tabs (see [what's new](https://github.com/{{ site.github }}/commits/master)). Get it from the [download page]({{ site.baseurl }}/download.html).
Now, I am looking for help with the binary distributions, which should be brought up to level 1.1. Any contributions are greatly appreciated!

View File

@ -0,0 +1,14 @@
---
layout: post
title: "Samuel Huckins on boxes"
date: 2009-12-14 22:23:00 +0100
comments: false
---
Boxes in the press: boxes got an honorable mention on [dancingpenguinsoflight.com](https://web.archive.org/web/20120110015127/http://dancingpenguinsoflight.com/2009/12/fun-with-ascii-art/).
Samuel Huckins says:
> "boxes provides boundless entertainment."
That's exaggerated, but very nice.

View File

@ -0,0 +1,10 @@
---
layout: post
title: "Introductory video on boxes"
date: 2012-06-11 12:00:00 +0100
comments: false
---
Boxes in the press: boxes was covered by nixCraft in an [article with video](http://io9.in/i8). Here is the video:
<iframe width="420" height="315" src="//www.youtube-nocookie.com/embed/glzXjNvrYOc?rel=0" frameborder="0" allowfullscreen></iframe>

View File

@ -0,0 +1,8 @@
---
layout: post
title: "New release: boxes v1.1.1"
date: 2012-10-19 21:00:00 +0100
comments: false
---
**Version 1.1.1 is out**. Version 1.1.1 is essentially a maintenance release which incorporated patches to the documentation by Salvatore Bonaccorso. There are no substantial changes to the code. See what's new in the [change log](https://github.com/{{ site.github }}/commits/master).

View File

@ -0,0 +1,8 @@
---
layout: post
title: "The Windows port of boxes v1.1.1 is available"
date: 2014-04-16 23:56:00 +0100
comments: false
---
Ron Aaron provided a Windows port of the current boxes version 1.1.1! Get it from the [download page]({{ site.baseurl }}/download.html). Many thanks Ron Aaron! Thanks also go to boxes user Jared Cooperband, who tracked down Ron's current contact details and convinced him to work on boxes again.

View File

@ -0,0 +1,10 @@
---
layout: post
title: "The boxes sources moved to GitHub!"
date: 2014-09-24 12:57:00 +0100
comments: false
---
The boxes sources moved to [GitHub](https://github.com/{{ site.github }})!
This will hopefully make maintaining boxes much more efficient. Issues, feature requests, and contributions are now handled via GitHub. Also, development-related documentation will eventually be moved to GitHub. Everything else on this website stays the same for now.

8
about.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include about.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

22
archive.html Normal file
View File

@ -0,0 +1,22 @@
---
layout: default
---
<div class="well">
{%for post in site.posts %}
{% unless post.next %}
<h1>{{ post.date | date: '%Y' }}</h1>
<ul>
{% else %}
{% capture year %}{{ post.date | date: '%Y' }}{% endcapture %}
{% capture nyear %}{{ post.next.date | date: '%Y' }}{% endcapture %}
{% if year != nyear %}
</ul>
<h1>{{ post.date | date: '%Y' }}</h1>
<ul>
{% endif %}
{% endunless %}
<li><a href="{{ site.baseurl}}{{ post.url }}">{{ post.date | date: "%b %-d" }} - {{ post.title }}</a></li>
{% endfor %}
</ul>
</div>

544
box-designs.txt Normal file
View File

@ -0,0 +1,544 @@
44 Available Styles in ".boxes":
--------------------------------
ada-box (Neil Bird <neil.bird@rdel.co.uk>):
---------------
-- --
-- --
---------------
ada-cmt (Neil Bird <neil.bird@rdel.co.uk>):
--
-- regular Ada
-- comments
--
boxquote (Christian Molls <CMolls@gmx.net>):
,----[ mp3-wav ]
| #!/bin/sh
| # konvertiert im aktuellen Verzeichnis .mp3 in .wav
| for i in *.mp3; do
| mpg123 -v --stereo --rate 44100 -w "`basename "$i" .mp3`".wav "$i"
| done
`----
boy (Joan G. Stark <spunk1111@juno.com>):
.-"""-.
/ .===. \
\/ 6 6 \/
( \___/ )
_________ooo__\_____/______________
/ \
| joan stark spunk1111@juno.com |
| VISIT MY ASCII ART GALLERY: |
| http://www.geocities.com/SoHo/7373/ |
\_______________________ooo_________/ jgs
| | |
|_ | _|
| | |
|__|__|
/-'Y'-\
(__/ \__)
c (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
/*************/
/* */
/* */
/*************/
c-cmt (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
/* */
/* regular C language */
/* comments */
/* */
c-cmt2 (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
/*
* regular C language
* comments
*/
c-cmt3 (AlpT (@freaknet.org)):
/**
*
*/
code(here); a++;
/**/
capgirl (Joan G. Stark <spunk1111@juno.com>):
.-"```"-.
/_______; \
(_________)\|
/ / a a \ \(_)
/ ( \___/ ) \
________ooo\__\_____/__/___________
/ \
| joan stark spunk1111@juno.com |
| VISIT MY ASCII ART GALLERY: |
| http://www.ascii-art.com |
\________________________ooo________/
/ \ jgs
/:.:.:.:.:.:.:\
| | |
\==|==/
/-'Y'-\
(__/ \__)
cat (Joan G. Stark <spunk1111@juno.com>):
/\ /\
|`\\_,--="=--,_//`|
\ ." :'. .': ". /
==) _ : ' : _ (==
|>/O\ _ /O\<|
| \-"~` _ `~"-/ |
>|`===. \_/ .===`|<
jgs .-"-. \===' | '===/ .-"-.
.-----{'. '`}---\, .-'-. ,/---{.'. '}-----.
) `"---"` `~-===-~` `"---"` (
( joan stark )
) < spunk1111@juno.com > (
( ASCII ART GALLERY: )
) < http://www.geocities.com/SoHo/7373/ > (
'-------------------------------------------'
cc (Bas van Gils <bvg@linuxfan.com>):
/****************
* *
* *
****************/
ccel (Elmar Loos <elInfo@gmx.net>):
///////////////
text //
here //
///////////////
columns (unknown artist):
__^__ __^__
( ___ )---------------( ___ )
| / | | \ |
| / | | \ |
| / | | \ |
|___| |___|
(_____)---------------(_____)
diamonds (Joan G. Stark <spunk1111@juno.com>):
/\ /\ /\ /\
/\//\\/\ /\//\\/\ /\//\\/\ /\//\\/\
/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\
//\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\
\\//\/ \/\\//
\/ \/
/\ /\
//\\ joan stark spunk1111@juno.com //\\
\\// http://www.geocities.com/SoHo/7373/ \\//
\/ \/
/\ /\
//\\/\ /\//\\
\\///\\/\//\\\///\\/\//\\\///\\/\//\\\///\\/\//\\\//
\/\\///\\\//\/\\///\\\//\/\\///\\\//\/\\///\\\//\/
\/\\//\/ \/\\//\/ \/\\//\/ \/\\//\/
\/ \/ \/ \/
dog (Joan G. Stark <spunk1111@juno.com>):
__ _,--="=--,_ __
/ \." .-. "./ \
/ ,/ _ : : _ \/` \
\ `| /o\ :_: /o\ |\__/
`-'| :="~` _ `~"=: |
\` (_) `/
jgs .-"-. \ | / .-"-.
.-----{ }--| /,.-'-.,\ |--{ }-----.
) (_)_)_) \_/`~-===-~`\_/ (_(_(_) (
( joan stark )
) < spunk1111@juno.com > (
( ASCII ART GALLERY: )
) < http://www.geocities.com/SoHo/7373/ > (
'-------------------------------------------'
girl (Joan G. Stark <spunk1111@juno.com>):
.-"""-.
/ .===. \
/ / a a \ \
/ ( \___/ ) \
________ooo\__\_____/__/___________
/ \
| joan stark spunk1111@juno.com |
| VISIT MY ASCII ART GALLERY: |
| http://www.geocities.com/SoHo/7373/ |
\________________________ooo________/ jgs
/ \
/:.:.:.:.:.:.:\
| | |
\==|==/
/-'Y'-\
(__/ \__)
headline (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
/*************/
/* */
/* */
/*************/
html (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
<!-- - - - - - - - - - - -->
<!-- -->
<!-- -->
<!-- -->
<!-- - - - - - - - - - - -->
html-cmt (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
<!-- -->
<!-- regular comments used in HTML files -->
<!-- -->
ian_jones (Karl E. Jorgensen <karl@jorgensen.com>):
\\\///
/ _ _ \
(| (.)(.) |)
.----------------------.OOOo--()--oOOO.-----------------.
| |
| Your Text Here Your Text Here Your Text Here Your Tex |
| Your Text Here Your Text Here Your Text Here Your Tex |
| Your Text Here Your Text Here Your Text Here Your Tex |
| Your Text Here Your Text Here Your Text Here Your Tex |
| |
'--------------------.oooO------------------------------'
( ) Oooo.
\ ( ( )
\_) ) /
(_/
java-cmt (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
//
// regular Java
// comments
//
javadoc (Ted Berg <tedberg@spiritone.com>):
/**
* Javadoc Comments
*
*/
lisp-cmt (Vijay Lakshminarayanan <liyer.vijay@gmail.com>):
;;
;; regular comments used in Lisp
;;
mouse (Joan G. Stark <spunk1111@juno.com>):
.--, .--,
( ( \.---./ ) )
'.__/o o\__.'
{= ^ =}
> - <
___________.""`-------`"".____________
/ \
\ o joan stark O /
/ spunk1111@juno.com \
\ ascii art gallery /
/ http://www.geocities.com/SoHo/7373/ \
\______________________________________/
___)( )(___
(((__) (__)))
netdata (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
%{-----------------------------------------------------------------+
| IBM Net.Data Macro Sample - Perl and SQL Backends |
| Thomas Jensen, February 17, 1998 (Tuesday, 16:40h) |
+-----------------------------------------------------------------%}
nuke (Joan G. Stark <spunk1111@juno.com>):
_ ._ _ , _ ._
(_ ' ( ` )_ .__)
( ( ( ) `) ) _)
(__ (_ (_ . _) _) ,__)
`~~`\ ' . /`~~`
,::: ; ; :::,
':::::::::::::::'
_________________jgs______/_ __ \________________________
| |
| BAD, BAD, BUG HERE :-) |
|_________________________________________________________|
parchment (unknown artist):
________________________
/\ \
\_| |
| |
| |
| ____________________|_
\_/_____________________/
peek (unknown artist):
/* _\|/_
(o o)
+----oOO-{_}-OOo---------------------+
| |
| C function headers? |
| |
| |
+-----------------------------------*/
pound-cmt (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
#
# regular comments used in Perl, Shell scripts, etc.
#
right (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
This can be used for marking code changes with your initials
(I don't like it, but some people work this way):
for (j=0; j<blank_count; ++j) /*@TJ@*/
fprintf (opt.outfile, "\n"); /*@TJ@*/
blank_count = 0; /*@TJ@*/
santa (Joan G. Stark <spunk1111@juno.com>):
.-"``"-.
/______; \
{_______}\|
(/ a a \)(_)
(.-.).-.)
_______ooo__( ^ )____________
/ '-.___.-' \
| joan stark |
| spunk1111@juno.com |
| ASCII ART GALLERY: |
| http://www.ascii-art.com |
\________________________ooo________/
|_ | _| jgs
\___|___/
{___|___}
|_ | _|
/-'Y'-\
(__/ \__)
scroll (unknown artist):
/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \
| /~~\ /~~\ |
|\ \ | | / /|
| \ /| |\ / |
| ~~ | | ~~ |
| | | |
| | | |
| | | |
| | | |
| | | |
\ |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| /
\ / \ /
~~~ ~~~
shell (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
#############
# #
# #
#############
simple (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
*************
* *
* *
*************
spring (Joan G. Stark <spunk1111@juno.com>):
,
/\^/`\
| \/ |
| | | SPRING IS IN THE AIR! jgs
\ \ / _ _
'\\//' _{ ' }_
|| joan stark { `.!.` }
|| <spunk1111@juno.com> ',_/Y\_,'
|| , {_,_}
|\ || |\ |
| | || | | ASCII ART GALLERY: (\| /)
| | || / / <http://www.geocities.com/SoHo/7373/> \| //
\ \||/ / |//
`\\//` \\ \./ \\ / // \\./ \\ // \\ |/ /
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
stark1 (Joan G. Stark <spunk1111@juno.com>):
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
^ -, ,-. . . ^
^ | ,-. ,-. ;-. `-, |- ,-. ;-. | ' ^
^ , | | | ,-| | | , ; | ,-| | |`. ^
^ `-' `-' `-^ ' ^ `-' `- `-^ ' ` ` ^
^ Spunk1111@juno.com ^
^ ,-. . . . . . ^
^ `-, ;-. . . ;-. | ' | | | | ^
^ , ; | | | | | | |`. | | | | ^
^ `-' |-' `-^ ' ^ ` ` ` ` ` ` ^
^ ` ^
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
stark2 (Joan G. Stark <spunk1111@juno.com>):
.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@-:.
.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@-:.
.:-@ ____ (_, _, _, _, _, @-:.
.:-@ (-(__`,_ ,_ |_, | | | | Spunk1111@juno.com @-:.
.:-@ ____)|_)|_|| || \__, _|_ _|_ _|_ _|_ @-:.
.:-@ ( _| |_, @-:.
.:-@ ( ____, ____ (_, @-:.
.:-@ (-| _ _ ,_ (-(__`_|_ _ ,_ |_, @-:.
.:-@ _ |(_)(_|| | ____) | (_|| | \_, @-:.
.:-@ (__/ ( |_, @-:.
.:-@ @-:.
.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@-:.
.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@.:-@-:.
stone (Fredrik Steen <fsteen@stone.nu>):
+-------------+
| stone |
+-------------+
sunset (Joan G. Stark <spunk1111@juno.com>):
.
. | .
\ | /
'. \ ' / .'
'. .'```'. .'
<>.............:::::::`.......`:::::::................<>
<>: ., .., . . . . . . . . . . joan stark :<>
<>: :, :.' : : :`.: :.' `: `: `: `: spunk1111 :<>
<>: ,.; : `.' : `: : `. : : : : @juno.com :<>
<>:..................................................:<>
<><><><><><><><><><><><><><><><><><><><><><><><><><><><>
~you can't hurt your eyesight by looking on the bright side~
~but you can hurt them by looking at bad ascii art!~
tjc (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
static char *foo (const int a, const int b)
/*
* Do the foo on the bar and around again.
*
* a number of doodlefrobs
* b barfoo mode (0 == off)
*
* Memory will be allocated for the result.
*
* RETURNS: Success: Pointer to result line
* Error: 0 (e.g. out of memory)
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
{
static char temp ....
int ii; ....
underline (Elmar Loos <elInfo@gmx.net>):
// Bla, foo bar!
// ~~~~~~~~~~~~~
vim-cmt (Thomas Jensen <boxes(at)thomasjensen(dot)com>):
"
" comments used in the vim editor's config file (.vimrc)
"
whirly (unknown artist):
.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.
( )
) (
( )
"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"
xes (Joan G. Stark <spunk1111@juno.com>):
<\/><\/><\/>
<\/></\></\></\><\/>
</\> </\>
<\/> <\/>
</\> </\>
<\/> <\/>
</\> </\>
<\/> <\/>
</\> </\>
<\/> <\/>
</\><\/><\/><\/></\>
jgs </\></\></\>

8
contributing.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include contributing.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

5
css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

122
css/theme.css Normal file
View File

@ -0,0 +1,122 @@
body {
padding-top: 60px;
padding-bottom: 60px;
font-size: 1.6em;
}
.copyright {
color: #ffffff;
}
.footer {
text-align: center;
}
div.footer {
max-height: 33px;
padding-top: 2px;
font-size: 12px;
line-height: 1.1em;
}
.footer a {
color: #ee4444;
}
.sidebar h1 {
color: #ee4444;
font-size: 1.3em;
}
.sidebar a {
color: #428bca;
}
.sidebar li {
margin-top: .7em;
line-height: 1em;
}
.sidebar a:hover {
color: #3071a9;
}
.container-left {
margin: 0;
}
.well {
padding-top: 0;
}
.well h1 {
color: #ee4444;
font-size: 1.3em;
}
.author {
color: #ee4444;
}
.author a {
color: #ee4444;
}
.bxsample div {
margin: 0;
padding: 0;
}
.bxsample pre {
margin: 0;
padding: 0;
overflow: visible;
border: 0;
}
.bxpage h1 {
color: black;
font-size: 28px;
font-weight: bold;
}
.bxpage h2 {
color: black;
font-size: 22px;
font-weight: bold;
padding-top: 0.5em;
border-top: 1px solid darkgray;
}
.bxpage h3{
color: black;
font-size: 18px;
font-weight: bold;
}
.bxpage dd {
margin-left: 2em;
}
.bxpage pre {
border: 0;
background-color: white;
}
p code, li code { /* also outside of bxpages */
color: black;
background-color: #ffffdc;
}
blockquote {
font-size: 1em;
font-weight: normal;
font-style: italic;
}
pre {
line-height: 100%;
word-wrap: normal; /* prevent contents of pre areas from line wrapping */
}
pre code {
white-space: pre; /* prevent contents of pre areas from line wrapping */
}
a.bxOffsetAnchor { /* used to prevent anchors from being obscured by the fixed header */
display: block;
position: relative;
top: -60px;
visibility: hidden;
}

516
docs/boxes-man-1.html Normal file
View File

@ -0,0 +1,516 @@
---
layout: default
title: Manpage of boxes(1)
---
<div class="well bxpage">
<H1>boxes</H1>
Section: User Commands (1)<BR>Updated: October 19 2012<BR>
[ <A HREF="#index">Index</A> | <A HREF="index.html">Return to Main Contents</A> ]
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
boxes - text mode box and comment drawing filter
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<B>boxes</B>
[-hlmrv] [-a&nbsp;format] [-d&nbsp;design] [-f&nbsp;file] [-i&nbsp;indent] [-k&nbsp;bool]
[-p&nbsp;pad] [-s&nbsp;size] [-t&nbsp;tabopts] [infile [outfile]]
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<I>Boxes</I>
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</I>
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</I>
was originally intended to be used with the <I>vim(1)</I>
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.
<A NAME="lbAE">&nbsp;</A>
<H2>OPTIONS</H2>
Options offered by <I>boxes</I> are the following:
<DL COMPACT>
<DT><B>-a </B><I>string</I>
<DD>
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>
<P>
<B>h</B>x
- horizontal alignment of the input text block inside a potentially larger
box. Possible values for
<I>x</I>
are
<B>l</B>
(ell, for left alignment),
<B>c</B>
(center), or
<B>r</B>
(right). This does not affect the justification of text lines within the
input text block (use the
<B>j</B>
argument instead).
<BR>
<B>v</B>x
- vertical alignment of the input text block inside a potentially larger
box. Possible values for
<I>x</I>
are
<B>t</B>
(for top alignment),
<B>c</B>
(center), or
<B>b</B>
(bottom).
<BR>
<B>j</B>x
- justification of lines within the input text block. Possible values for
<I>x</I>
are
<B>l</B>
(ell, for left justification),
<B>c</B>
(center), or
<B>r</B>
(right). This does not affect the alignment of the input text block itself
within the box. Use the
<B>h</B>
and
<B>v</B>
arguments for input text block positioning.
<BR>
<P>
Short hand notations (can be combined with the above arguments):
<BR>
<B>l</B>
(ell) - short for
<B>h</B>l<B>v</B>c<B>j</B>l
<BR>
<B>c</B>
- short for
<B>h</B>c<B>v</B>c<B>j</B>c
<BR>
<B>r</B>
- short for
<B>h</B>r<B>v</B>c<B>j</B>r
<BR>
<P>
The factory default setting for
<B>-a</B>
is
<B>h</B>l<B>v</B>t.
<DT><B>-c </B><I>string</I>
<DD>
Command line design definition for simple cases. The argument of this
option is the definition for the &quot;west&quot; (W) shape. The defined shape must
consist of exactly one line, i.e. no multi-line shapes are allowed. The
<B>-c</B>
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</B>
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</B>
and does not access the config file.
<B>-c</B>
may of course be used in conjunction with any of the other options. By default,
<B>-c</B>
is not specified.
<DT><B>-d </B><I>string</I>
<DD>
Design selection. The one argument of this option is the name of the design to
use.
<DT><B>-f </B><I>string</I>
<DD>
Use alternate config file. The one argument of this option is the name of a
valid
<I>boxes</I>
config file, containing new and exciting designs!
<DT><B>-h</B>
<DD>
Print usage information.
<DT><B>-i </B><I>string</I>
<DD>
Indentation mode. Possible arguments are &quot;text&quot; (indent text inside of
box), &quot;box&quot; (indent box, not text inside of box), or &quot;none&quot; (throw away
indentation). Arguments may be abbreviated. The default is to indent the
box, but not the text.
<DT><B>-k </B><I>bool</I>
<DD>
Kill leading/trailing blank lines on removal. The value of
<I>bool</I>
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</B>.
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.
<DT><B>-l</B>
<DD>
(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</B>,
displays detailed information about the specified design.
<DT><B>-m</B>
<DD>
Mend box. This removes a (potentially broken) box as with
<B>-r</B>,
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, identation, etc. for the mended box. Implies
<B>-k</B>
false.
<DT><B>-p </B><I>string</I>
<DD>
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</B>
- (all) give padding for all sides at once
<BR>
<B>h</B>
- (horiz) give padding for both horizontal sides
<BR>
<B>v</B>
- (vertical) give padding for both vertical sides
<BR>
<B>b</B>
- (bottom) give padding for bottom (south) side
<BR>
<B>l</B>
- (left) give padding for left (west) side
<BR>
<B>t</B>
- (top) give padding for top (north) side
<BR>
<B>r</B>
- (right) give padding for right (east) side
<BR>
Example:
<B>-p a</B>4<B>t</B>2
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.
<DT><B>-r</B>
<DD>
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</B>
to specify the design. The default is to draw a new box.
<DT><B>-s </B><I>width</I><B>x</B>height
<DD>
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</B>).
<BR>
By default, the smallest possible box is created around the text.
<DT><B>-t </B><I>string</I>
<DD>
Tab handling. This option controls how tab characters in the input text are
handled. The option string must always begin with a
<I>uint</I>
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</I>
how to treat the leading tabs. The following options are available:
<BR>
<B>e</B>
- expand tabs into spaces
<BR>
<B>k</B>
- keep tabs as close to what they were as possible
<BR>
<B>u</B>
- unexpand tabs. This makes
<I>boxes</I>
turn as many spaces as possible into tabs.
<BR>
<P>
In order to maintain backwards compatibility, the
<B>-t</B>
<I>string</I>
can be just a number. In that case,
<B>e</B>
is assumed for tab handling, which removes all tabs and replaces them with
spaces. The factory default for the
<B>-t</B>
option is simply 8, which is just such a case.
<BR>
For example, you could specify
<B>-t </B>4u
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.
<DT><B>-v</B>
<DD>
Print out current version number.
</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>CONFIGURATION FILES</H2>
<I>Boxes</I>
will use the configuration file specified on the command line (using
<B>-f</B>).
If no config file is specified on the command line,
<I>boxes</I>
will check for the BOXES environment variable, which may contain a filename
to use. If BOXES is not set,
<I>boxes</I>
will try to read $HOME/.boxes and use it as a config file. Failing that,
<I>boxes</I>
will try to read the system-wide config file (see FILES).
<P>
The syntax of
<I>boxes</I>
config files is described on the website (see below). They are quite
self-explanatory, though.
<A NAME="lbAG">&nbsp;</A>
<H2>AVAILABILITY</H2>
<I>Boxes</I>
is available from its website at
<A HREF="http://boxes.thomasjensen.com/">http://boxes.thomasjensen.com/</A>.
The website also features a number
of examples illustrating this manual page as well as more in-depth
documentation.
<P>
Check out <I>vim(1)</I>
at <A HREF="http://www.vim.org/" target="_blank">vim.org</A>!
<A NAME="lbAH">&nbsp;</A>
<H2>AUTHOR</H2>
<I>Boxes</I>
was made by Thomas Jensen &lt; boxes at thomasjensen dot com &gt;.
<BR>
Please see the <I>boxes</I> website for the most current email address.
<A NAME="lbAI">&nbsp;</A>
<H2>VERSION</H2>
This is <I>boxes</I> version 1.1.1.
<A NAME="lbAJ">&nbsp;</A>
<H2>BUGS</H2>
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!
<A NAME="lbAK">&nbsp;</A>
<H2>ENVIRONMENT</H2>
<I>Boxes</I>
recognizes the following environment variables:
<DL COMPACT>
<DT>HOME<DD>
The user's home directory.
<DT>BOXES<DD>
Name of
<I>boxes</I>
configuration file, if different from <tt>~/.boxes</tt>.
</DL>
<A NAME="lbAL">&nbsp;</A>
<H2>FILES</H2>
<DL COMPACT>
<DT>$HOME/.boxes<DD>
<I>boxes</I>
configuration file
<DT>/usr/share/boxes<DD>
system-wide configuration file
</DL>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT><A HREF="#lbAE">OPTIONS</A><DD>
<DT><A HREF="#lbAF">CONFIGURATION FILES</A><DD>
<DT><A HREF="#lbAG">AVAILABILITY</A><DD>
<DT><A HREF="#lbAH">AUTHOR</A><DD>
<DT><A HREF="#lbAI">VERSION</A><DD>
<DT><A HREF="#lbAJ">BUGS</A><DD>
<DT><A HREF="#lbAK">ENVIRONMENT</A><DD>
<DT><A HREF="#lbAL">FILES</A><DD>
<DT><A HREF="#lbAM">SEE ALSO</A><DD>
</DL>
<HR>
This document was created by
<A HREF="http://users.actrix.gen.nz/michael/vhman2html.html" target="_blank">man2html</A>,
using the manual pages.<BR>
Time: 20:07:24 GMT, October 19, 2012<br/>
Page created April 06, 1999, last touched: 19-Oct-2012.
</div>

125
docs/boxes.el Normal file
View File

@ -0,0 +1,125 @@
;;; boxes.el --- use boxes to comment regions
;; Copyright (C) 1999, 2001, 2006 Jason L. Shiffer
;; Author: Jason L. Shiffer <jshiffer@zerotao.com>
;; Maintainer: jshiffer@zerotao.com
;; Keywords: extensions
;; Created: 1999-10-30
;; Others:
;; Vijay Lakshminarayanan: support for choosing boxes comment by current buffer mode.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program; if not, you can either send email to this
;; program's maintainer or write to: The Free Software Foundation,
;; Inc.; 675 Massachusetts Avenue; Cambridge, MA 02139, USA.
;;; Commentary:
;; This program provides an interface to the boxes application which can be found at
;; http://boxes.thomasjensen.com/
;; To use this, put it somewhere in your load path and add the following
;; lines to your .emacs:
;;
;; (autoload 'boxes-command-on-region "boxes" nil t)
;; (autoload 'boxes-remove "boxes" nil t)
;; (autoload 'boxes-create "boxes" nil t)
;; (global-set-key "\C-cq" 'boxes-create)
;; (global-set-key "\C-cr" 'boxes-remove)
;;; Code:
(eval-when-compile (require 'cl))
;;;###autoload
(defvar boxes-command "boxes"
"The boxes command.")
(defvar boxes-types-alist
(ignore-errors
(with-temp-buffer
(call-process "boxes" nil t nil "-l")
(goto-char (point-min))
(let ((retval nil))
(while (re-search-forward "^\\([a-zA-Z][a-zA-Z0-9-]+\\) (.*):" nil t)
(add-to-list 'retval (cons (match-string 1)
(match-string 1))))
retval)))
"Association of types available to the current boxes implementation." )
(make-variable-buffer-local 'boxes-types-alist)
(defvar boxes-history (list nil))
;;;###autoload
(defvar boxes-known-modes
'((c-mode . "c-cmt2") (c++-mode . "c-cmt2") (java-mode . "java-cmt")
(html-mode . "html-cmt") (sh-mode . "pound-cmt") (perl-mode . "pound-cmt")
(python-mode . "pound-cmt") (ruby-mode . "pound-cmt")
(emacs-lisp-mode . "lisp-cmt") (lisp-mode . "lisp-cmt"))
"The default comment type based on file names.")
(make-variable-buffer-local 'boxes-known-modes)
;;;###autoload
(defun boxes-set-default-type (mode)
"Set the default box mode according to the buffer's major mode."
(setq boxes-default-type (or (cdr (assoc mode boxes-known-modes)) "c-cmt2")))
;;;###autoload
(defvar boxes-default-type nil "The default type of comment.")
(make-variable-buffer-local 'boxes-default-type)
;;;###autoload
(defvar boxes-args ""
"Arguments to the boxes command.")
(make-variable-buffer-local 'boxes-args)
;;;###autoload
(defun boxes-create ()
"Automagicly create a new box around the region based on the default type."
(interactive "*")
(boxes-command-on-region (region-beginning) (region-end) boxes-default-type))
;;;###autoload
(defun boxes-remove ()
"Automagicly remove a new box around the region based on the default type."
(interactive "*")
(boxes-command-on-region (region-beginning) (region-end) boxes-default-type 1))
;;;###autoload
(defun boxes-command-on-region (start end type &optional remove)
"Create/Remove boxes from a region. To create just select a region and M-x boxes-command-on-region
then you will be prompted to enter a box type. The type selection can use tab completion on the types available.
To remove a box simply prefix a 1 to the callL M-1 M-x boxes-command-on-region will remove a box from a region."
(interactive (let ((string
(completing-read (format "Box type (%s): " boxes-default-type)
boxes-types-alist nil t nil 'boxes-history boxes-default-type)))
(list (region-beginning) (region-end)
string
current-prefix-arg)))
(if type
(setq boxes-default-type type)
(setq boxes-default-type (boxes-set-default-type major-mode)
type boxes-default-type))
(let ((command-string
(concat boxes-command
(if remove
(concat boxes-args " -r "))
(if type
(concat boxes-args " -d " type)))))
(shell-command-on-region start end command-string nil 1 nil)))
(provide 'boxes)
;;; boxes.el ends here

View File

@ -0,0 +1,9 @@
---
layout: default
title: Docs - Config Examples
---
{% capture includedMarkdown %}{% include docs/config-complete_exp.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

View File

@ -0,0 +1,4 @@
---
layout: default
redirect: config-complete_exp.html
---

9
docs/config-general.html Normal file
View File

@ -0,0 +1,9 @@
---
layout: default
title: Docs - Config Intro
---
{% capture includedMarkdown %}{% include docs/config-general.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

View File

@ -0,0 +1,4 @@
---
layout: default
redirect: config-general.html
---

9
docs/config-step.html Normal file
View File

@ -0,0 +1,9 @@
---
layout: default
title: Docs - Config Step-by-Step
---
{% capture includedMarkdown %}{% include docs/config-step.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

4
docs/config-step.shtml Normal file
View File

@ -0,0 +1,4 @@
---
layout: default
redirect: config-step.html
---

9
docs/config-syntax.html Normal file
View File

@ -0,0 +1,9 @@
---
layout: default
title: Docs - Config File Syntax
---
{% capture includedMarkdown %}{% include docs/config-syntax.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

4
docs/config-syntax.shtml Normal file
View File

@ -0,0 +1,4 @@
---
layout: default
redirect: config-syntax.html
---

8
docs/filters.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include docs/filters.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

4
docs/filters.shtml Normal file
View File

@ -0,0 +1,4 @@
---
layout: default
redirect: filters.html
---

8
docs/index.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include docs/index.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

4
docs/index.shtml Normal file
View File

@ -0,0 +1,4 @@
---
layout: default
redirect: index.html
---

8
docs/install.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include docs/install.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

4
docs/install.shtml Normal file
View File

@ -0,0 +1,4 @@
---
layout: default
redirect: install.html
---

9
docs/legal.html Normal file
View File

@ -0,0 +1,9 @@
---
layout: default
title: Legal Stuff
---
{% capture includedMarkdown %}{% include docs/legal.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

4
docs/legal.shtml Normal file
View File

@ -0,0 +1,4 @@
---
layout: default
redirect: legal.html
---

8
download.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include download.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

8
examples.html Normal file
View File

@ -0,0 +1,8 @@
---
layout: default
---
{% capture includedMarkdown %}{% include examples.md %}{% endcapture %}
<div class="bxpage well">
{{ includedMarkdown | markdownify }}
</div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 B

BIN
images/boxes-md.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
images/boxes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
images/filter1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
images/filter2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
images/filter3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

BIN
images/t_boxes.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

View File

@ -1,89 +1,77 @@
<!DOCTYPE html>
<html>
---
layout: default
---
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="description" content="boxes : Command line ASCII boxes unlimited!">
<div class="article">
<div class="well" style="border-color:darkgray;">
<div class="container-fluid" style="margin-top:1em;">
<div class="row">
<div class="col-sm-12" style="padding:0;"><i>Boxes</i> draws a box around its input text. It can remove and repair those boxes, too. You can easily make your own box designs if&nbsp;you wish, but many designs are already provided.</div>
</div>
<div class="row bxsample">
<div class="col-sm-5"><pre class="hidden-xs hidden-md">
<link rel="stylesheet" type="text/css" media="screen" href="stylesheets/stylesheet.css">
<title>boxes</title>
</head>
</pre><pre> __________________
/\ \
\_| |
Hello World! ==> | Hello World! |
| |
| _____________|_
\_/_______________/
&nbsp;</pre></div><div class="col-sm-1 visible-md-block">&nbsp;</div>
<div class="col-sm-3"><pre class="hidden-xs hidden-md">
<body>
<!-- HEADER -->
<div id="header_wrap" class="outer">
<header class="inner">
<a id="forkme_banner" href="https://github.com/ascii-boxes/boxes">View on GitHub</a>
</pre><pre class="hidden-xs">
<h1 id="project_title">boxes</h1>
<h2 id="project_tagline">Command line ASCII boxes unlimited!</h2>
<section id="downloads">
<a class="zip_download_link" href="https://github.com/ascii-boxes/boxes/zipball/master">Download this project as a .zip file</a>
<a class="tar_download_link" href="https://github.com/ascii-boxes/boxes/tarball/master">Download this project as a tar.gz file</a>
</section>
</header>
</pre><pre> /******************/
/* */
/* Hello World! */
/* */
/******************/
&nbsp;</pre></div>
<div class="col-sm-4 hidden-md"><pre> \\\///
/ _ _ \
(| (.)(.) |)
.---.OOOo--()--oOOO.---.
| |
| Hello World! |
| |
'---.oooO--------------'
( ) Oooo.
\ ( ( )
\_) ) /
(_/</pre></div>
</div>
</div>
</div>
<!-- MAIN CONTENT -->
<div id="main_content_wrap" class="outer">
<section id="main_content" class="inner">
<h3>
<a id="welcome-to-github-pages" class="anchor" href="#welcome-to-github-pages" aria-hidden="true"><span class="octicon octicon-link"></span></a>Welcome to GitHub Pages.</h3>
<p>This automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:</p>
<pre><code>$ cd your_repo_root/repo_name
$ git fetch origin
$ git checkout gh-pages
</code></pre>
<p>If you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.</p>
<h3>
<a id="designer-templates" class="anchor" href="#designer-templates" aria-hidden="true"><span class="octicon octicon-link"></span></a>Designer Templates</h3>
<p>We've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.</p>
<h3>
<a id="rather-drive-stick" class="anchor" href="#rather-drive-stick" aria-hidden="true"><span class="octicon octicon-link"></span></a>Rather Drive Stick?</h3>
<p>If you prefer to not use the automatic generator, push a branch named <code>gh-pages</code> to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.</p>
<h3>
<a id="authors-and-contributors" class="anchor" href="#authors-and-contributors" aria-hidden="true"><span class="octicon octicon-link"></span></a>Authors and Contributors</h3>
<p>You can <a href="https://github.com/blog/821" class="user-mention">@mention</a> a GitHub username to generate a link to their profile. The resulting <code>&lt;a&gt;</code> element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (<a href="https://github.com/defunkt" class="user-mention">@defunkt</a>), PJ Hyett (<a href="https://github.com/pjhyett" class="user-mention">@pjhyett</a>), and Tom Preston-Werner (<a href="https://github.com/mojombo" class="user-mention">@mojombo</a>) founded GitHub.</p>
<h3>
<a id="support-or-contact" class="anchor" href="#support-or-contact" aria-hidden="true"><span class="octicon octicon-link"></span></a>Support or Contact</h3>
<p>Having trouble with Pages? Check out the documentation at <a href="https://help.github.com/pages">https://help.github.com/pages</a> or contact <a href="mailto:support@github.com">support@github.com</a> and well help you sort it out.</p>
</section>
</div>
{% for post in paginator.posts %}
<div class="article">
<div class="well well-sm">
<h1><a href="{{ site.baseurl}}{{ post.url }}">{{ post.date | date: "%b %-d, %Y" }} - {{ post.title }}</a></h1>
{% if site.comments == true and post.comments == true and site.disqus != '' %}
<p class="author"><a href="{{ site.baseurl }}{{ post.url }}/#disqus_thread">Comments</a></p>
{% endif %}
<div class="content">
{{ post.content }}
</div>
</div>
</div>
{% endfor %}
<!-- FOOTER -->
<div id="footer_wrap" class="outer">
<footer class="inner">
<p class="copyright">boxes maintained by <a href="https://github.com/ascii-boxes">ascii-boxes</a></p>
<p>Published with <a href="http://pages.github.com">GitHub Pages</a></p>
</footer>
</div>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-23698164-1");
pageTracker._trackPageview();
} catch(err) {}
</script>
</body>
</html>
<div class="pagination">
{% if paginator.previous_page %}
{% if paginator.previous_page == 1 %}
<a class="btn btn-default" href="{{ site.baseurl}}/index.html" class="previous">Newer</a>
{% else %}
<a class="btn btn-default" href="{{ site.baseurl}}/page{{ paginator.previous_page }}" class="previous">Newer</a>
{% endif %}
{% endif %}
<span class="page_number ">Page: {{ paginator.page }} of {{ paginator.total_pages }}</span>
{% if paginator.next_page %}
<a class="btn btn-default" href="{{ site.baseurl}}/page{{ paginator.next_page }}" class="next">Older</a>
{% endif %}
</div>

View File

@ -1 +0,0 @@
console.log('This would be the main JS file.');

6
js/bootstrap.min.js vendored Normal file

File diff suppressed because one or more lines are too long

4
js/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long

9
links.html Normal file
View File

@ -0,0 +1,9 @@
---
layout: default
---
<!-- This page provides the sidebar links for mobile, where the sidebar is hidden -->
<div class="well">
{% include links-list.html %}
</div>

View File

@ -1 +0,0 @@
{"name":"boxes","tagline":"Command line ASCII boxes unlimited!","body":"### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here using GitHub Flavored Markdown, select a template crafted by a designer, and publish. After your page is generated, you can check out the new branch:\r\n\r\n```\r\n$ cd your_repo_root/repo_name\r\n$ git fetch origin\r\n$ git checkout gh-pages\r\n```\r\n\r\nIf you're using the GitHub for Mac, simply sync your repository and you'll see the new branch.\r\n\r\n### Designer Templates\r\nWe've crafted some handsome templates for you to use. Go ahead and continue to layouts to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved if it remained markdown format.\r\n\r\n### Rather Drive Stick?\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator written by our own Tom Preston-Werner. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `<a>` element will link to the contributor's GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out the documentation at https://help.github.com/pages or contact support@github.com and well help you sort it out.\r\n","google":"UA-23698164-1","note":"Don't delete this file! It's used internally to help with page regeneration."}

View File

@ -1,70 +0,0 @@
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f0f3f3; }
.highlight .c { color: #0099FF; font-style: italic } /* Comment */
.highlight .err { color: #AA0000; background-color: #FFAAAA } /* Error */
.highlight .k { color: #006699; font-weight: bold } /* Keyword */
.highlight .o { color: #555555 } /* Operator */
.highlight .cm { color: #0099FF; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #009999 } /* Comment.Preproc */
.highlight .c1 { color: #0099FF; font-style: italic } /* Comment.Single */
.highlight .cs { color: #0099FF; font-weight: bold; font-style: italic } /* Comment.Special */
.highlight .gd { background-color: #FFCCCC; border: 1px solid #CC0000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #003300; font-weight: bold } /* Generic.Heading */
.highlight .gi { background-color: #CCFFCC; border: 1px solid #00CC00 } /* Generic.Inserted */
.highlight .go { color: #AAAAAA } /* Generic.Output */
.highlight .gp { color: #000099; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #003300; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #99CC66 } /* Generic.Traceback */
.highlight .kc { color: #006699; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #006699; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #006699; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #006699 } /* Keyword.Pseudo */
.highlight .kr { color: #006699; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #007788; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #FF6600 } /* Literal.Number */
.highlight .s { color: #CC3300 } /* Literal.String */
.highlight .na { color: #330099 } /* Name.Attribute */
.highlight .nb { color: #336666 } /* Name.Builtin */
.highlight .nc { color: #00AA88; font-weight: bold } /* Name.Class */
.highlight .no { color: #336600 } /* Name.Constant */
.highlight .nd { color: #9999FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #CC0000; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #CC00FF } /* Name.Function */
.highlight .nl { color: #9999FF } /* Name.Label */
.highlight .nn { color: #00CCFF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #330099; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #003333 } /* Name.Variable */
.highlight .ow { color: #000000; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mf { color: #FF6600 } /* Literal.Number.Float */
.highlight .mh { color: #FF6600 } /* Literal.Number.Hex */
.highlight .mi { color: #FF6600 } /* Literal.Number.Integer */
.highlight .mo { color: #FF6600 } /* Literal.Number.Oct */
.highlight .sb { color: #CC3300 } /* Literal.String.Backtick */
.highlight .sc { color: #CC3300 } /* Literal.String.Char */
.highlight .sd { color: #CC3300; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #CC3300 } /* Literal.String.Double */
.highlight .se { color: #CC3300; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #CC3300 } /* Literal.String.Heredoc */
.highlight .si { color: #AA0000 } /* Literal.String.Interpol */
.highlight .sx { color: #CC3300 } /* Literal.String.Other */
.highlight .sr { color: #33AAAA } /* Literal.String.Regex */
.highlight .s1 { color: #CC3300 } /* Literal.String.Single */
.highlight .ss { color: #FFCC33 } /* Literal.String.Symbol */
.highlight .bp { color: #336666 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #003333 } /* Name.Variable.Class */
.highlight .vg { color: #003333 } /* Name.Variable.Global */
.highlight .vi { color: #003333 } /* Name.Variable.Instance */
.highlight .il { color: #FF6600 } /* Literal.Number.Integer.Long */
.type-csharp .highlight .k { color: #0000FF }
.type-csharp .highlight .kt { color: #0000FF }
.type-csharp .highlight .nf { color: #000000; font-weight: normal }
.type-csharp .highlight .nc { color: #2B91AF }
.type-csharp .highlight .nn { color: #000000 }
.type-csharp .highlight .s { color: #A31515 }
.type-csharp .highlight .sc { color: #A31515 }

View File

@ -1,425 +0,0 @@
/*******************************************************************************
Slate Theme for GitHub Pages
by Jason Costello, @jsncostello
*******************************************************************************/
@import url(pygment_trac.css);
/*******************************************************************************
MeyerWeb Reset
*******************************************************************************/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
ol, ul {
list-style: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
/*******************************************************************************
Theme Styles
*******************************************************************************/
body {
box-sizing: border-box;
color:#373737;
background: #212121;
font-size: 16px;
font-family: 'Myriad Pro', Calibri, Helvetica, Arial, sans-serif;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
margin: 10px 0;
font-weight: 700;
color:#222222;
font-family: 'Lucida Grande', 'Calibri', Helvetica, Arial, sans-serif;
letter-spacing: -1px;
}
h1 {
font-size: 36px;
font-weight: 700;
}
h2 {
padding-bottom: 10px;
font-size: 32px;
background: url('../images/bg_hr.png') repeat-x bottom;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 21px;
}
h5 {
font-size: 18px;
}
h6 {
font-size: 16px;
}
p {
margin: 10px 0 15px 0;
}
footer p {
color: #f2f2f2;
}
a {
text-decoration: none;
color: #007edf;
text-shadow: none;
transition: color 0.5s ease;
transition: text-shadow 0.5s ease;
-webkit-transition: color 0.5s ease;
-webkit-transition: text-shadow 0.5s ease;
-moz-transition: color 0.5s ease;
-moz-transition: text-shadow 0.5s ease;
-o-transition: color 0.5s ease;
-o-transition: text-shadow 0.5s ease;
-ms-transition: color 0.5s ease;
-ms-transition: text-shadow 0.5s ease;
}
a:hover, a:focus {text-decoration: underline;}
footer a {
color: #F2F2F2;
text-decoration: underline;
}
em {
font-style: italic;
}
strong {
font-weight: bold;
}
img {
position: relative;
margin: 0 auto;
max-width: 739px;
padding: 5px;
margin: 10px 0 10px 0;
border: 1px solid #ebebeb;
box-shadow: 0 0 5px #ebebeb;
-webkit-box-shadow: 0 0 5px #ebebeb;
-moz-box-shadow: 0 0 5px #ebebeb;
-o-box-shadow: 0 0 5px #ebebeb;
-ms-box-shadow: 0 0 5px #ebebeb;
}
p img {
display: inline;
margin: 0;
padding: 0;
vertical-align: middle;
text-align: center;
border: none;
}
pre, code {
width: 100%;
color: #222;
background-color: #fff;
font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
font-size: 14px;
border-radius: 2px;
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
}
pre {
width: 100%;
padding: 10px;
box-shadow: 0 0 10px rgba(0,0,0,.1);
overflow: auto;
}
code {
padding: 3px;
margin: 0 3px;
box-shadow: 0 0 10px rgba(0,0,0,.1);
}
pre code {
display: block;
box-shadow: none;
}
blockquote {
color: #666;
margin-bottom: 20px;
padding: 0 0 0 20px;
border-left: 3px solid #bbb;
}
ul, ol, dl {
margin-bottom: 15px
}
ul {
list-style-position: inside;
list-style: disc;
padding-left: 20px;
}
ol {
list-style-position: inside;
list-style: decimal;
padding-left: 20px;
}
dl dt {
font-weight: bold;
}
dl dd {
padding-left: 20px;
font-style: italic;
}
dl p {
padding-left: 20px;
font-style: italic;
}
hr {
height: 1px;
margin-bottom: 5px;
border: none;
background: url('../images/bg_hr.png') repeat-x center;
}
table {
border: 1px solid #373737;
margin-bottom: 20px;
text-align: left;
}
th {
font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, sans-serif;
padding: 10px;
background: #373737;
color: #fff;
}
td {
padding: 10px;
border: 1px solid #373737;
}
form {
background: #f2f2f2;
padding: 20px;
}
/*******************************************************************************
Full-Width Styles
*******************************************************************************/
.outer {
width: 100%;
}
.inner {
position: relative;
max-width: 640px;
padding: 20px 10px;
margin: 0 auto;
}
#forkme_banner {
display: block;
position: absolute;
top:0;
right: 10px;
z-index: 10;
padding: 10px 50px 10px 10px;
color: #fff;
background: url('../images/blacktocat.png') #0090ff no-repeat 95% 50%;
font-weight: 700;
box-shadow: 0 0 10px rgba(0,0,0,.5);
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
}
#header_wrap {
background: #212121;
background: -moz-linear-gradient(top, #373737, #212121);
background: -webkit-linear-gradient(top, #373737, #212121);
background: -ms-linear-gradient(top, #373737, #212121);
background: -o-linear-gradient(top, #373737, #212121);
background: linear-gradient(top, #373737, #212121);
}
#header_wrap .inner {
padding: 50px 10px 30px 10px;
}
#project_title {
margin: 0;
color: #fff;
font-size: 42px;
font-weight: 700;
text-shadow: #111 0px 0px 10px;
}
#project_tagline {
color: #fff;
font-size: 24px;
font-weight: 300;
background: none;
text-shadow: #111 0px 0px 10px;
}
#downloads {
position: absolute;
width: 210px;
z-index: 10;
bottom: -40px;
right: 0;
height: 70px;
background: url('../images/icon_download.png') no-repeat 0% 90%;
}
.zip_download_link {
display: block;
float: right;
width: 90px;
height:70px;
text-indent: -5000px;
overflow: hidden;
background: url(../images/sprite_download.png) no-repeat bottom left;
}
.tar_download_link {
display: block;
float: right;
width: 90px;
height:70px;
text-indent: -5000px;
overflow: hidden;
background: url(../images/sprite_download.png) no-repeat bottom right;
margin-left: 10px;
}
.zip_download_link:hover {
background: url(../images/sprite_download.png) no-repeat top left;
}
.tar_download_link:hover {
background: url(../images/sprite_download.png) no-repeat top right;
}
#main_content_wrap {
background: #f2f2f2;
border-top: 1px solid #111;
border-bottom: 1px solid #111;
}
#main_content {
padding-top: 40px;
}
#footer_wrap {
background: #212121;
}
/*******************************************************************************
Small Device Styles
*******************************************************************************/
@media screen and (max-width: 480px) {
body {
font-size:14px;
}
#downloads {
display: none;
}
.inner {
min-width: 320px;
max-width: 480px;
}
#project_title {
font-size: 32px;
}
h1 {
font-size: 28px;
}
h2 {
font-size: 24px;
}
h3 {
font-size: 21px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 14px;
}
h6 {
font-size: 12px;
}
code, pre {
min-width: 320px;
max-width: 480px;
font-size: 11px;
}
}