Putting 'Em Together
 
Sunday, October 06, 2002  

After reviewing various site templates (here, here and here), I found that there is no one way to construct a CityDesk site. In deciding my own approach, I had to determine how I wanted to work with the application.

The first consideration is ease of maintenance. I don't want to spend a lot of time tweaking the mechanics. I want to spend my time making content.

The second consideration is that when I do want to get at the mechanics, they are right there and I don't have to spend time remembering what I did before.

The third consideration is that when I'm working, I want everything available on the desktop or the taskbar, one click away. I'm an incrementalist -- I'll make a couple of small changes, look at the results, and then move on or correct. The quicker I can do this, the better.

The first conclusion I came to was to not rely on variables very much if for no other reason than the variables applet in CityDesk is surprisingly clunky compared to the rest of the application. If I could keep a variable window open along with a template window, an article window, and an html window, I might react differently.

(For this very reason, however, if you are building a site for other, non-technical people to update and maintain, you may want to rely on variables heavily. Not quite security-through-obscurity, more like security-through-inconvenience.)

The essence of my approach is self-documentation. When I open up a particular type of window, I want to see all pertinent information. I don't want to have to refer to another type of window unless necessary.

Templates

The mechanics of my site revolve around the templates. Each template has all the html tagging in place, including all the meta tags. There is very little scripting, other than CityDesk placeholders, such as {$.body$}. The variables are equally simple.

The tradeoff is between universality and accessibility. All the stuff in the head section of the template is the same across all templates, so could be handled with a variable -- change one, change all. With my way, if I want to add something to the head section for the site, I have to open all the templates. On the other hand, when I open a template, I see everything in one place. My preference.

Variables

The most complicated variable I use is the one that calls the indivdual elements for the navigation menu (more). Mostly they are for obvious universal elements, like the masthead graphic {$.logo$}.

Scripting

What scripting I do use is placed on the html tab of Articles. Right now my scripting is limited to index lists of articles. The one addition I made to the basic list script from the CityDesk help is to exclude a couple of keywords. All index pages have the keyword _index. All reference pages (like this) have the keyword _reference.

Once I get my site tweaked out, I plan to offer a template for download.