The web browser Zen, is a small modular browser with different output targets. It is written in C, and runs on Un*x based platforms. The structure of the browser consists of 5 major parts.

The Protocols, loading files, coming from the local file system, from an HTTP source, or an FTP server.

Once the raw, unparsed HTML data is loaded into Zen, the Parser kicks in, and outputs a parsed tree of the page.

Now it's time to go through the tree structure, and look for other files to load. The Images will be downloaded, and converted to the internal format from the original PNG, JPEG or GIF format.

From now on, it's a matter of output. Layouter goes through the tree and builds a page with usable coordinates and widgets.

Finally the User interface puts all things in place using the layout data, and the library for the selected output target.

Available output targets are a plain dumb text dump, a GTK interface, and a framebuffer alternative using oFBis.

More information can be found at:

http://www.nocrew.org/software/zen/