Home
Parent Directory

boxgen

The program boxgen creates complex layouts, based on an input-language that describes the layout in relative terms of boxes. For example there are commands like

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).

email: oliver _at_ first.in-berlin.de

last time changed: 19th of July 2007
Mail: oliver _at_ first.in-berlin.de