Google

Net Neutrality Canada - Neutrality.ca
Save the Net

What It Is

SiteBuilder is a free small, light, and fast website maintenance tool for Windows and Linux. It is a command-line application meant to be called from a batch file or makefile, although it is simple enough to run manually.

How It Works

SiteBuilder uses a simple INI file to define a site's pages. Each page is a section in the INI file. A global section "Defaults" is used to set default values that can be omitted (or overridden) in individual page sections. A section called "Pages" defines the set of pages that will be generated; this allows for pages to be defined but not actually generated.

Pages are normally generated by substituting "magic" tags in a template file with text values or the contents of a file. Each page can have its own template, if desired, although normally a site will have only one or a few templates for all pages. The template is normal HTML. It defines enough structure to be a skeleton of any page, but only minimal content. Placeholders for actual content are defined with names in double square brackets: [[AN_EXAMPLE]].

In the INI file, these tags and their replacement values are specified for each individual page. For example, AN_EXAMPLE=This is an example. When SiteBuilder processes the template for this page, any tags called AN_EXAMPLE are replaced with the literal text This is an example. The contents of an arbitrary file (normally HTML) can be substituted by specifying FILE:page\filename instead of literal text.

Although this technique is very simple, it allows for a lot of flexibility. You can use any editor you like to create the HTML template files and the content fragments. By separating content from page layout, it is easier to divide up the work among different designers or departments. Final assembly is as simple as running a script.

Each page is defined as a few variables (title, header(s), maybe an image) and one or more file fragments that provide body text. The remainder of the site comes from more static file fragments that provide the same header, footer, menus, etc for all pages. The result is a fully-static web site that is fast and light-weight without most of the maintenance headache of doing everything statically. (Incidentally, you are not limited to static content. You can include PHP, ASP, JavaScript, (etc), or references to CGI scripts in any template or page fragment if you want dynamic elements. It's not limited to web content, either; SiteBuilder will happily assemble any kind of text content that can be represented in its "templates and tags" format. If you do end up using it for something cool, please tell me about it!))

What It Is Not

There are a few limitations: SiteBuilder doesn't automatically generate navigation menus from the list of pages; it doesn't check for dead links; it doesn't walk your dog or make your coffee in the morning. It just does what it's told, generating pages from a collection of static files and variable substitutions. I think it does this extremely well: SiteBuilder is a 225 KB (yes, kilobyte) Windows executable (only 19KB on Linux!) that generates this entire site in about 3 seconds on my 1.8 GHz Athlon64 PC.

Get SiteBuilder

I wrote SiteBuilder because I wanted a simple, flexible tool for Windows to maintain my web site. I find it suits my needs quite well. If you'd like to try it, please go ahead: the latest version is available in the Downloads section. Comments and suggestions for improvement are welcome; my email address is in the README.txt file in the SiteBuilder package.