Scripting GeodSoft Page Maintenance
Planning a script to automate web site maintenance by propagating changes to
navigation aids and other standard web site features throughout the web site.
It must also
maintain distinct identifiers that clearly label the different operating
systems, Linux, Windows NT and OpenBSD and web servers, Apache and IIS,
that run the sites.
Having just finished splitting the Making This Web site into
multiple small pages (Thursday, May 4, 2000)
and writing the two pages on describing
the split, I have just over 75 pages on the site. It's
becoming a serious maintenance challenge to propagate minor
revisions through even a significant subset of this site.
I've been working with the site long enough that I'm pretty
much satisfied with the basic design and think I understand
most of the issues that a script will need to deal with.
Before getting to the details of the script, I want to make
it clear that I am aware of some of the alternatives. Starting
with version 2, Macromedia's Dreamweaver has the ability to
process some or all of a site updating all of the templates
that have changed throughout the site or part of a site.
In some ways this is
closest to what I will do with a custom script. There are
of course numerous site management products that wrap the
entire site contents in a database with management tools.
Typically pages are served dynamically form such systems.
Lotus Domino and NetObjects Fusion are leading products of
this type. These approaches tend to have significant up
front costs and require commitment to specific or at least
a limited number of platforms. They also come with a number
of features that all integrate together. Medium and
larger sized organizations should investigate such
options when planning a new web site or web site overhaul.
They are overkill for a small consulting firm.
At this point I know several things about the GeodSoft web
site. It has standard page headers and footers and a table
structure to control page layout (see comments on
W3C Accessibility Guidelines and CSS) that are common
to all pages, except that the button for the current
major site area varies from page to page. The script
needs to be able to propagate changes to these areas
to every page in the site.
After some initial experimentation, I've come up with a search
form that I'm comfortable with and have used on all the more
recent pages. I expect the search form to look the same on
every page of a site on a specific platform.
Depending on the actual capabilities of the
search tool, the form may need to vary between sites on
different platforms. For example, any
search product that does not have capabilities comparable to
Microsoft's Index Server scope feature would have no use for
the "Search What?" drop down. A different search tool may have
some feature that is highly desirable and which warrants the
addition of a new element to the search form. At a minimum
each platform will have different back end scripts or executables
that the search form interacts with so the actual coding
will certainly be different even if the page looks the same
Next there are the graphics that will be different on every
platform. As mentioned previously, using different content
in the same named files on each system would solve that but
the alt tags and graphic dimensions will vary from platform
to platform and thus need to be standardized throughout the
files on a specific system by the script.
The Site Map should look the same on the same page on each
different platform but will be different on virtually every
page on the same platform since it is intended to highlight
the current section and page. In the more content rich
portions of the site a third (or fourth) level will be added
to each page with the current page highlighted. Thus the
script needs to understand where in the site it's processing
a file and get the right Site Map for that area and relate
the links in the map both to the file being processed as
well as the directories in which the file is located and
highlight the appropriate links. Each time a file is added,
moved, or deleted, the script needs to be able to update
the site map in every file that referenced the changed file(s).
The content in the large right side table cell is the page
specific content for each page. Because the contents of
this area are likely to be unique in every page on the site
there may be a tendency to avoid using scripts in this area.
There is at least one candidate for script assistance in
this area; this is the navigation aids for a sequence of
related pages. Each time a page is added at the end, at
least three pages must be updated. If one is inserted in
the middle, at least four must be updated and if a page
is moved, six pages may need to be updated. A script that
could read a text file in the appropriate area and automatically
build the table of contents and all navigation aids would
eliminate much work in maintaining areas of the site like this
one. A structured text file that identified the next and
previous graphic, contained literal text for the "Contents"
or other constant navigation aids and a sequential list of
file names with their associated link name could provide
the necessary information.
At this point, I have a pretty clear description of what
a site maintenance script needs to do. I'll resume this
narrative when I have something that is close to what I've
Top of Page -
Copyright © 2000 - 2014 by George Shaffer. This material may be
distributed only subject to the terms and conditions set forth in
These terms are subject to change. Distribution is subject to
the current terms, or at the choice of the distributor, those
in an earlier, digitally signed electronic copy of
http://GeodSoft.com/terms.htm (or cgi-bin/terms.pl) from the
time of the distribution. Distribution of substantively modified
versions of GeodSoft content is prohibited without the explicit written
permission of George Shaffer. Distribution of the work or derivatives
of the work, in whole or in part, for commercial purposes is prohibited
unless prior written permission is obtained from George Shaffer.
Distribution in accordance with these terms, for unrestricted and
uncompensated public access, non profit, or internal company use is