For practical usage in dynamically creating ZIP files, I've found it far more efficient and easy to use the `mod_zip` extension to Nginx[1]. It works really well, is highly RAM efficient, and pushes the logic down to some of the most stable software out there (Nginx).
I don't see why I can't deflate the tables as javascript data and then use JS to inflate and display them.
Just playing around with it I was able to compress a 120MB HTML file to 3.5MB.
If you are worried about the CPU cost of the compression and added request latency, you can pre-compress static content with most modern web servers (see http://stackoverflow.com/questions/75482/how-can-i-pre-compr... for Apache info).
There are only local HTML files that are checked in to revision control and shipped alongside releases.
HTML was chosen as the documentation file format because it's easy to find something to view it with.
General compression can get much better results than content translation. Check mod_deflate, mod_gzip, or what-ever your preferred web server's equivalent is (all modern servers aside from those designed to be absolutely minimal (for embedded systems and such) have one).
I'm interested to look into ways of feature-detection for this that could cause the zip to be generated client-side for supporting browsers and server-side for older..
I wonder what the size limit is?
Yep, it would be cool if that was included in the API and they used createObjectURL[0] where available. Although I don't think it'd fix the name issue, as there's a BlobBuilder, but only File objects have a name and there's no FileBuilder (a File's name is readonly...)
[0] http://www.w3.org/TR/FileAPI/#dfn-createObjectURL/window.URL...
The platform is getting there. Slowly.
No, you can generate a file using JavaScript/Canvas/SVG/etc. and then allow the user to save it to their system.
Their themes were basically a .tar.gz of files: one listing all the colours and other options and the rest being images for the various interface elements.
With the canvas and something like this, almost the entire thing could be done client-site now.