[Journal - Reshaping The Site]

Reshaping The Site

Thursday, November 3, 2005

As non-IE users will have noticed, I have decided to reshape my web site into a very different design. I'm moving away from the complex, scripted, and framed configuration, though it's hard to give it up. Therefore, for the foreseeable future, there are going to be two versions of the site: the old complex one for IE, the new simple one for everybody else.

My moving away from scripts and frames is only partially for browser market share, technical or usability reasons. Although sticking with complex, IE-favorable designs would a mistake, the main point is to keep things simple. I've had my share of DHTML adventures, and most of the classic design goals can be achieved by means other than framesets - namely, removal of gimmicks, and code generation.

Speaking of code-generation, I've come up with ways to transform pages in-place, so I can easily support both versions of the site. Specifically, at publication time, I generate the sidebars you can see on the left, which are for the new version. In IE, sidebars are hidden by scripts at rendering time.

I refer to the insertion (and possible updates) of the sidebar elements as "in-place" text generation, because existing files are partially changed by the process. The advantage is that I can keep the data in all of my existing regular HTML files as they are. I don't need to separate the content out of the pages right away.

A related question is whether document data should exists separately from the HTML documents (that is, reside in XML files, or even in a database) at all. An HTML document is a logical entitiy - the term document here stands for a certain unit and type of data; it's like an article or a post, an addressable piece of information, logically structured into components like title, author, content, with the content structured into other logical elements. In other words, the structure is exactly right for storing the type of data usually published on the web. HTML is always about logical structuring, never physical representation ("formatting"; think CSS).

My pages are not yet XHTML pages; the transformation will take a me a while. But once that's done, sidebars can be generated in a context sensitive manner more easily. I'm thinking about including information about the current page (URL, title, publication date), outlines, quotes, summaries, or related links.