Glossary of Terms for WebLord, the Document Assembly Tool
Logo WebLord v2.2
The Document Assembly Tool

Glossary

Keyword Description

Date & Time

The current date and/or time can be expressed by defining a TEXT object's value-type property to be 'date' and using as the value of the object any combination of the symbols in the center column of the table below.

Any sequence of characters not understood is simply inserted directly into the output. If you do not actually use any of the symbols below, then the given value of characters is effectively unchanged:

Category Symbol Description of Symbol
Year %y the year without the century as a decimal number (00-99)
%Y the year with the century as a decimal number
Month %m the month as a decimal number (01-12)
%b the locale's abbreviated month name
%B the locale's full month name
Day %j the day of the year as a decimal number (001-366)
%d the day of the month as a decimal number (01-31)
Weekday %a the locale's abbreviated weekday name
%A the locale's full weekday name
%w the weekday as a decimal number (0-6), where Sunday is 0
Week %U the week number of the year (the first Sunday as the first day of week 1) as a decimal number (00-53)
%W the week number of the year (the first Monday as the first day of week 1) as a decimal number (00-53)
Hour %H the hour (24-hour clock) as a decimal number (00-23)
%I the hour (12-hour clock) as a decimal number (00-12)
Minute %M the minute as a decimal number (00-59)
Second %S the second as a decimal number (00-59)
Timezone %Z the timezone identifier¹
%z the timezone hours offset from GMT (ex: '+0100')¹
Other %c the locale's appropriate date and time representation
%x the locale's appropriate date representation
%X the locale's appropriate time representation
%p the locale's equivalent of the AM and PM designations
%% the percent sign
¹ If the timezone (TZ) Environment Variable is not set, then the %Z/%z symbols will be resolved as if the value was "CST6"

Environment Variable

An environment variable represents a configuration setting that accompanies a program during its execution. The program can obtain and change the value of this environment variable; users can freely manipulate the values of environment variables.

Most operating systems implement the concept of a system-wide environment whose values can be overridden by a local environment, one that "lives" only as long as the shell exists that defines these local values.

Operating systems with proper networking capabilities will define some or all of the following environment variables:

USER
The login name of the current user
HOST
The network identification of the host machine
DOMAIN
The network domain of the host machine (i.e. without the individual machine's name, but pertaining to the wider network in which the machine operates)
TZ
The timezone specification
HOME
The home directory of the current user
EDITOR
The full path and program name of the user's preferred text editor

Note: Many of these are considered de-facto standards and were introduced in the 1970s with the first versions of the Unix operating system. All modern operating systems define these value, with the notable and regrettable exception of Microsoft's attempt at operating systems.


Default Pages

The default pages for a given site is a list of pages defined by the pages property and used whenever a specific list of pages to build is not given.


MD5 Digest

A highly reliable, and standard means of computing a "signature" (digest) of an arbitrary amount of (binary) data in order to distinguish it from any other data.

An MD5 digest is a sequence of 128 bits (more than 3 × 1038 possible combinations) that is mathematically "secure" in the sense that it reveals nothing about the data of its origin.

WebLord uses MD5 Digests for the signatures in its Page Signature Database, using the uniqueness of these signatures merely to determine if one version of a page is different from a newly generated one. If the digests are equal, WebLord knows that the page has not changed.

WebLord also allows you to compute an MD5 Digest from any arbitrary chunk of text by defining a value-type of "md5".


Page Signature Database

In order for WebLord to determine if a page has changed or not, it maintains a database of page signatures. When the signature of a page being built turns out to be the same as that of the previous one, then WebLord knows not to write the page out again, suppressing the output and post-exec operations for the page.

Considering that WebLord can derive page contents from external objects, even network resources, user-input, etc. it is infeasible to rely on date/time stamps of files or such resources. Similarly, the date of the site description file may simply indicate that one object has changed, but this says nothing about ALL pages.

The solution is to maintain a "signature" of your pages to compare to each newly built page. If the signature for a page is the same as the earlier version, then the page contents have not changed and there is no need to update the page.

The Page Signature Database maintains an MD5 Digest for each page's output file. You can remove (or reorder) individual lines from this database file (it is a simple text file, each line often less than 80 characters in length and and easy to edit) if the need arises to "prune" old files away.

The name of the Page Signature Database file can be specified with the pagesigdb command line argument. If you do not specify a file, WebLord will look for a file named wl-pgsig.db in...

  1. the current working directory,
  2. the weblord directory in your home directory (~/weblord/)
  3. the /opt/share/weblord/ directory, which may or may not be available or even writeable.

Note: If you use time-sensitive information on your pages, such as a "this page last modified on..." notice, then you are effectively changing the signature of your pages whenever the date changes. Please keep this in mind when relying on the Page Signature Database to prevent unnecessary page updates.


Upload

Using the page property post-exec, you can specify a command to upload the page directly to your Internet Service Provider or copy the file to your web server's file directory. Most likely you have (or need to build) a script to perform this task if it is anything more than trivial.

Unix Example:

post-exec = »cp « output » /opt/apache/htdocs/walrus/« output


Varfile

The term varfile refers to a file containing variable or object references. These references take the general form ${...} where ... is a reference to a property defined or inherited by the object that represents the file.

The reference can include both a leading and trailing parameter list, both given in ( )'s. The leading parameter list is for specifying special modifiers. The trailing parameter list gives one or more key=valuepairs to be inherited by the called object (provided that it is an object).

Special Modifiers (separate with commas)
include
The named value is a file that is to be included instead
literal
The value is a literal (@@@ needs more explanation)
nolock
Do not bother locking the (file) resource
exec
for future expansion; not implemented

The trailing (invocation) parameter list is a simplified list for key=value pairs: \ character escape quoting is not implemented so the first occurrence of ) terminates the list; quoted values are considered literals, unquoted values object references. The parsing in this portion of the code is extremely primitive. Don't give it junk. Avoid extra white space!

Examples:
${my-name}
${(include)./test.html}

Since version 2.2 WebLord also understands a parameter list:
${email(color='#880000';addr='sales2@ringlord.com')}
${email(color='#880000';addr='sales2@ringlord.com';name=myname)}


This material is Copyright © 1997,1998,1999,2000,2001 RingLord Technologies and Udo Schuermann. All rights reserved. The latest versions of the WebLord software and (this) documentation can be obtained from the WebLord Home Page (the link will only function if you are connected to the internet.)