Midnight Beach logo

Ethiopia - Site Map

The look of a site needs to be malleable, but it changes relatively slowly. The structure of a site can change much faster. A topic that has two sub-topics today may have five sub-topics tomorrow. Today's hot subtopic is tomorrow's stale news, and won't get such prominent menu placement.

If every page has navigational information that shows your reader where she is on your site, each of these changes in the site structure can affect a lot of pages. Having to do this by hand biases you against making changes, and increases the chances you will make a mistake.

What I wanted was an editor that let me build an outline outside of the template or page source. The same template program that sees that a particular HTML file needs to be refreshed can read the outline, and build a string that contains the HTML for the current page's outline. I wanted to ultimately be able to do 'logical operations' on the outline - what page is left (or up, or right) of this one? - but decided to bootstrap my way there.

That is, the first draft of the new template program included a function (compiled in, with the rest of the C# source) that built the menu string for each page. It came to be pretty complicated, with special handling for anchors and so on. I expected that ultimately I'd come to include some sort of scripting so that that each group of pages could have its own custom menu function(s), but I wanted to get there by small, testable steps.


Created on May 10, 2003, last updated May 12, 2003 • Contact jon@midnightbeach.com