Volume Number: 16 (2000)
Issue Number: 1
Column Tag: Tools of the Trade
by Bill von Hagen
Automating Web site management and standardizing content
Huge web sites can be a nightmare to maintain, both because of the sheer number of pages and because of the frequency with which page data and inter-page relationships can change. Developments in browsers and Web technology such as SSI (Server-Side Includes), CSS (Cascading Style Sheets), and XSL (eXtensible Stylesheet Language) go a long way towards helping the web-site designer standardize the visual identify of a site by imposing a single set of styles across a site. Unfortunately, imposing an analogous set of standards across the content of your pages can still be a difficult task.
ProVUE's SiteWarrior is a web site management and creation tool that takes a unique approach to page storage and content standardization. SiteWarrior stores web sites in an internal database where each record contains a single web page. For storage and management tasks SiteWarrior uses ProVUE's own market-tested Panorama RAM database, and therefore doesn't require that you already have a database application on your system. Using a database often brings visions of shotguns loaded with cryptic SQL commands to mind, which isn't the case at all with SiteWarrior. SiteWarrior uses its integrated database behind the scenes to produce final versions of your web pages - you don't have to know a single thing about databases in order to use SiteWarrior.
Once you've created and stored web pages in SiteWarrior, you can either preview them with a browser or export them as separate HTML files, a process which SiteWarrior calls "rendering." SiteWarrior helps enforce consistency guarantees in the pages you render by inserting standard headers and footers, standard server-side includes, and even automatically generating portions of the content for your pages.
Getting Started with SiteWarrior
SiteWarrior's installation process is as easy as you'd expect from any Mac application. One significant problem with the version I reviewed is that it did not create a SiteWarrior folder (as advertised in the documentation), but instead installed all of the SiteWarrior files and folder at the top level of the selected disk. If you are as meticulous as I am about using neatly nested folders for all of your software, you should create a SiteWarrior folder in your target install location before installation.
After installing any Web software package, my initial inclination is to set a cup of coffee on top of the documentation, fire up the software, and starting hacking pages. Unless you're psychic, that isn't possible with SiteWarrior. There is no SiteWarrior icon, which is an initial hint that you are indeed working with Web sites and pages in a whole new way. SiteWarrior provides a template web site in a folder called Empty Web Site. To create a new web site in SiteWarrior, you have to duplicate this folder, renaming the copy to suit your site. You start SiteWarrior by opening this folder, renaming the file www.emptysite.com to match your site, and then you double-click on the renamed file. Frankly, a helpful little AppleScript to do all of the above would be a win in my book, but it's always nice to leave a few bells and whistles for the next release.
Creating Pages with SiteWarrior
SiteWarrior's main screen is organized into three basic areas, with an attendant button bar and set of menus. (See Figure 1.) Once you have created pages, you can organize them into subsets in the Groups window, which simplifies maintaining different looks for different parts of your site. When you first start SiteWarrior, it provides two default entries, ALL and Main. Similarly, the Pages area lists all of the pages that are available in the active web site, and only lists the default Home page when you first open a new site project. The contents of the currently selected page are displayed in the largest window, which is empty when you start a new SiteWarrior project. SiteWarrior's page editor is simple but functional. If you are a BBEdit fan, you're in luck - SiteWarrior's Edit commands allow you to automatically open the current page in BBEdit.
Figure 1.Sample Home
To create a new page in SiteWarrior, select the Edit menu's New Page command. A dialog is displayed (See Figure 2.) in which you supply general information about the page, such as its name, title, meta tag keywords, and a general description of the intent of the page. You can also do this via the keyboard shortcut Command-N, which is exactly what you'd expect in a savvy Macintosh application.
Figure 2.New Page.
SiteWarrior is a text-oriented application, a fact that is heavily stressed in the documentation. For this reason, to add content or markup to a page means you must either manually enter pairs of HTML tags or click icons on the button bar to insert the appropriate HTML tags. I can already hear WYSIWYG page design fans beginning to chant "Burn It! Burn It!," but I'd like to meet a web page designer who hasn't closed his or her office door and manually hacked a web page or two.
SiteWarrior provides complete, integrated balloon help like any good Mac application. The balloon help is extremely useful when trying to figure out the meaning of the various icons on the button bar. Their meaning was intuitive in retrospect, after reading the associated balloons, but the balloon help was quite handy in solving this classic bootstrapping problem without resorting to clicking buttons to see what they actually do.
Once you've added tags and content to a page, you can preview it at any time by selecting the Render menu's Preview Page command. This displays the current page in your default browser.
Figure 3.Page Preview
Working with Existing Sites and Pages
Few people today have just one Web page design tool in their software toolchest. An important issue is how well SiteWarrior lets you work with existing sites and pages. SiteWarrior's File menu provides an Import Pages dialog that lets you browse for existing pages to import. SiteWarrior's import command worked well, but still provides some opportunities for incremental improvement. For example, it would be handy to have the option to strip or correct extraneous characters during the import process. Similarly, it would be nice to be able to automatically verify links on imported pages during the import process, letting you know if you've overlooked any files that you meant to import. Though you can subsequently verify links using the Site URL Maintenance command from SiteWarrior's Edit menu, a little automation here would be a nice thing.
Standardizing Site Content
Standardizing SITE SiteWarrior's greatest strength is its ability to insert entries that will be replaced by blocks of HTML code when you render a page. SiteWarrior does this in two different ways. First, you can define "tag nicknames" for commonly-used terms or complex HTML expressions, and second, you can use SiteWarrior's "Supertags", which automatically insert things like extra document header information, server-side includes, special types of generated content, and so on. When you render a page containing either tag nicknames or Supertags, they are automatically expanded into the more complex information that they represent. Not only are these useful to provide simple shortcuts for complex expressions, but they help eliminate the standard "query-replace" problem when you need to change something that appears on multiple pages throughout your site. By coding items such as a product name as a SiteWarrior's tag nickname, you can change that object through every referenced page by simply modifying the value of the nickname. You can view or edit the list of available tag nicknames at any time by selecting the Tags menu's Tag Nicknames command.
SiteWarrior's tag nicknames are a timesaver, but its SuperTags are a thing of beauty. Unlike tag nicknames, which simply substitute terms or HTML expressions during rendering, Supertags can either insert special content, such as standard page headings and the current date, or can generate complex content for the appropriate Supertag. ProVUE calls these Supertags "HTML factories" because of their ability to automatically generate content, insert styles, and otherwise help standardize your web site by freeing you from a significant amount of tedious, error-prone work. You can even create custom templates for the HTML generated from SuperTags, providing you even more opportunities for customization. As an example of the power of SuperTags, let's examine the SuperTags provided to help generate tables of contents and tables themselves.
Anyone who has maintained a large, dynamic web site and an associated table of contents page knows what a hassle it is to keep the table of contents up to date. As pages are added or removed from the site, updating the table of contents to reflect the current set of pages and their correct position in the site's browse sequence can be time-consuming and is easily overlooked when frantically adding content. In SiteWarrior, you can automate this entire process by inserting the tableofcontents SuperTag. When the web site is rendered, the tableofcontents SuperTag is automatically replaced by a generated table of contents for all of the pages in that site. The HTML elements that are compiled into the table of contents are the contents of the TITLE tags for each of the site's pages. The contents of the HTML TITLE tag are entered in the Page menu's Page Options dialog, which you filled out when you created the page but can edit at any time.
When creating longer pages, you often want to create a table of contents for a single page. SiteWarrior automates this process by providing a PageContents SuperTag. The HTML elements to be compiled into a page's table of contents are identified by the use of anchor tags. For example, the following tag would automatically appear in a page's table of contents after rendering a page containing the PageContents SuperTag:
<A NAME=TITLE>This is a Page Table of Contents Entry</A>
Separate SuperTags for site-wide and per-page tables of contents cover the most common cases where you would otherwise have to manually create tables of contents. You can also use the tableofcontents SuperTag to automatically generate tables of contents for subsets of the pages, by using the tableofcontents SuperTag's GROUP attribute. As mentioned earlier in this review, SiteWarrior lets you associate different pages with each other by assigning them to SiteWarrior page groups. When you insert a tableofcontents SuperTag whose GROUP attribute is set to the name of that page group, you can automatically generate a table of contents for a specific page group during rendering.
Automatically Merging External Information
SiteWarrior provides several SuperTags to help you automatically include, import, and format external information. The Include, Merge, MergeImport, and TableImport SuperTags automate different ways of integrating external data, templates, and other information. Let's look at SiteWarrior's TableImport SuperTag to see exactly how these types of tags can save you time and prevent the errors that are often accidentally introduced when you update complex pages.
A similarly tedious task to maintaining tables of contents is maintaining HTML tables, especially when done manually. This is painfully true when the source of the table data is in an external database that can be changed independently. SiteWarrior's TableImport SuperTag lets you store table data outside your web pages, thereby automating this process. It automatically imports and generates tables from that data during the rendering process.
Figure 4.Tables Import.
The TableImport SuperTag's FILE attribute identifies the name of the file with delimited entries that make up each row of your table. Whenever you need to update the tables in your site, you simply use your database application to generate the delimited file and then re-render the site in SiteWarrior. The next figure shows the HTML table produced by this rendered TableImport SuperTag.
In addition to the FILE attribute, the TableImport tag provides a number of other attributes that make it easy to generate sophisticated tables. The COLUMN attribute lets you specify column titles, specific column widths, column alignment, and the background color for any column. A COLOR attribute lets you automatically specify separate table background colors, and an associated COLORPATTERN attribute lets you define a repeating pattern of different row colors. The TableImport SuperTag also provides other attributes that let you further customize the layout of rows, columns, an entire table, or the cells in a table by providing HTML templates.
SiteWarrior is a powerful web site creation and management tool. Web site designers with a more graphical focus will need to augment SiteWarrior with a graphical page design tool, but once you've settled on a look for your site, it's easy to make it into a SiteWarrior template for future pages. If your focus is more on content and site design as a programming task, you will quickly fall in love with SiteWarrior's tag nicknames, Supertags, and similar shortcuts for automatic generation of content and standardization of the pages in your web sites. All in all, SiteWarrior is a powerful, capable tool for Web page design and management. If you can overcome its non-WYSIWYG orientation, SiteWarrior is a powerful addition to your web site war chest.
Bill von Hagen is a writer, computer system administrator, and the author of "SGML for Dummies." You can contact him at firstname.lastname@example.org.