[Hal E. Fulton]
> Suppose I want to follow an H1
> header with an H2 header. Fine...
> 
> cgi.out do
>   cgi.html do
>     cgi.body do
>       cgi.h1 { "Larger header" } +
>       cgi.h2 { "Smaller header" }
>     end
>   end
> end
...
> Couldn't it have been written in such 
> a way that output would have been
> done as we went along, or at least
> collected as we went along? 

I agree that this is not very good... it is too easy to forget the '+'.
But outputting the data directly is not very good either... you may want
to postprocess the data or (for example) write it to a database. Also,
I do not think that HTML generation really belongs in the CGI class.
But I do like the idea of using ruby blocks to indicate tag nesting.

I think a nice design would be something like this:

	h = HTML.new('HTML3', [:lower_case, :pretty])
	h.html {
		h.body {
			h.h1('Larger header')
			h.h2('Smaller header')
		}
	}
	cgi.out(h.to_s)

The #body, #h1 and #h2 methods would append their data to the h object.
Do you agree or would you rather see something else? Is HTML a good class
name or would HTMLGeneration be better? It is easy enough to code up once
the interface is decided.

// Niklas