I started writing this program in 2005. I stopped the development in July 2005, because I had a lot trouble in the real world.
At this time the program already was able to create
layouts for html (I named it html-boxgen,
because that was, what worked, even if I already
had provided code-snippets for creating
text-output and lout-output.
I also thought about directly creating Postscript-
and/or LaTeX-output.
The reason why I started to write
boxgen
was, that I found it too annoying
to write complex layouts in HTML.
(I did HTML-coding with vi/vim, which means coding by hand.)
I needed a more complex layout
for a better version of my CV.
Even if CSS, which I didn't explored
in detail at that time,
would be able to help a lot in
doing consistent layout-formatting,
e.g. for always using the correct fonts
and sizes of the letters,
it would not help in creating the structural
aspects of a layout.
This is, what boxgen is for.
As it is orthogonal to what CSS offers,
both can be combined.
IMHO this could become a powerful pair.
Now, on 31th of March 2007, I found my tool on my harddisk, after I did some cleaning of my rooms (a mind-cleaning action :)). And so I decided to write an initial description of the tool for public audience. I also decided to put it on the web, when I have a more flexible thing at hand. I think it would be fine to select the output-format by a command line switch.
But I'm also not completely clear about the input format, for example: should I extensively (and mandatory!) use "(" and ")", or (as it is now the case) making it possible to define layouts with nearly no "(" and ")".
I think intuitively writing a layout-description
is easier, when not using "(" and ")" to indicate the
layout-structure. It seems easier to write
the description, as it comes out of your mouth,
when you would describe it (maybe in a sense of
RPN (Reverse Polish Notation) in mind, but
not writing in this kind of notation, talking linear).
But if it is necessary to analyse the description
or to rewrite it,
it might be much more comprehensible,
if there are "(" and ")" to indicate structure and
priorities.
Using "(" and ")" for structuring is already
possible, but it is not necessary in general,
because left- or right-association will be used
by the parser.
Well, before I bore you with too much of theoretical blah-blah, I better use some examples to show the already implemented stuff.
Input 1 | Result 1 |
Input 2 | Result 2 |
Input 3 (using variables) | Result 3 |
Well, after re-reading theese examples, I think, that it is
much better for clarity to insist on a syntax that mandatory
needs "(" and ")".
So I think, that this will be a change for the future versions.
Nevcertheless, theese old examples would make sense to stay
here in the documentation (for explaining, why a differnt way
was selected).