A non-technical overview (please read first)

As you've doubtless realised by now this Web site uses menus which help guide you to areas of interest. You click on an item, the page link gets activated, and the appropriate page (which may be a further menu) is then loaded. The menus therefore provide a simple way of allowing a site user to move through the hierarchy of pages without needing to know anything about the site's structure in advance.

Needless to say this menu-based approach can require the use of a great many separate menu pages (in addition to the site pages that contain the real information). More importantly a lot of page links need to be maintained. Setting up this type of site can therefore not only take a lot of time initially but, if you need to modify the menus (say to add or remove options from various pages), it can also easily become a maintenance nightmare.

I've 'side stepped' these difficulties by writing a site creation program that takes a shorthand definition of the menu structure needed and generates all the required pages (including the menu links) automatically. Furthermore by keeping the information such as menu text, page titles and page content separately, I've been able to program the generator so that it inserts this material directly into the pages that it creates. The result is that I'm able to modify the menu structure at any time and only have to hit a single button in order to rebuild the new version of the site!

You'll notice incidentally a Page last updated item present at the bottom of any pages which contain text information. These dates fields are also generated automatically and it's possible because, whenever a file is changed in some way, an internal time stamp field present in the file gets set to the current system date. Since this happens as a matter of course whenever the contents of a file containing Web page text is changed all I needed to do was extract the information and use it. In short I wrote a small program which extracts the date stamps of all site-related text files so that they can subsequently be automatically incorporated into the appropriate pages whenever the Web site is recreated - clever eh!


Page last updated