HTE = Hyper Text Extension - an addition to the HTML standard intruducing new tags for the "on the fly" generation of browser documents.
URL interface
On servers supporting direct HTE access:
» "http://" <domain> "/" { <directory> "/" } <HTE file> [ "?" <key> [ "="" <value> """ ] { "&" <key> [ "="" <value> """ ] } ] .
On all servers:
» "http://" <domain> "/" { <directory> "/" } <HTE cgi>"?="" <HTE file> """ { "&" <key> [ "="" <value> """ ] } .
General rules
HTE tags begin with either "<!" or "<!--!" followed by a keyword and end with either ">" or "-->". Any combination of beginning/ending delimiters is valid.
Keywords and attribute identifiers are not, attribute values are case sensitive.
The empty tag ("<!>" or "<!--!>" or "<!--!-->") instructs the HTE interpreter to skip all immediately following white space.
Indexing in HTE starts with 1.
The HTE interpreter tries to continue in case of an error.
HTE data types
String
A sequence of characters. All other HTE data types are strings with a special syntax and additional rules.
Command
An executable expression. Its syntax depends of the specific context.
Error
The code or description of an error - always empty if no error occured.
Keyword
One out of several strings with a special meaning in a given context. The respective default is used instead of all other strings. Known keywords:
» "+": The logical value true / yes / 1.
» "-": The logical value false / no / 0.
» "error": Used to advice a tag to return an error.
» "gmt": Greenwich Mean Time.
» "server": Local server time.
» "www": Universal Internet Time.
Number
Any combination of characters representing a valid numerical value. Exotic forms are not necessarily supported by all implementations.
There may be additional requirements for a number in a specific context (precision, range).
It's not defined what illegal numbers are evaluated to.
URL
An internet "uniform resource locator".
Set
A list of single characters.
File
The location an name of a file on the local server using an URL like syntax with a "/" to separate directories.
HTE supports the following special directories:
» "/": The project root directory.
» "./": The current directory, which is always the directory of the inmost HTE file processed (may be omitted).
» "../": The parent directory.
» "*/": The directory of the executed script.
» ":/": The directory of the outmost HTE file processed.
» "?/": The directory of the HTE library.
» "~/": The directory of the document containing the processed URL (not always available and appropriate).
Pattern
An expression to specify a list of files on the local server with the help of wildcard characters.
Posix+
The description of a date/time format as a combination of free text and the following placeholders:
» "%A": Day of the week (long).
» "%a": Day of the week (short).
» "%B": Month (long).
» "%b": Month (short).
» "%c": Date & time.
» "%d": Day ("01"-"31").
» "%H": Hour ("00"-"23").
» "%I": Hour ("01"-"12").
» "%j": Day ("001"-"366").
» "%M": Minute ("00"-"59").
» "%m": Month ("01"-"12").
» "%p": "am"/"pm".
» "%S": Second ("00"-"59").
» "%T": Universal internet time ("00000"-"99999").
» "%t": Universal internet time ("000"-"999").
» "%U": Week starting sunday ("00"-"53").
» "%W": Week starting monday ("00"-"53").
» "%w": Day of the week starting sunday ("0"-"6").
» "%X": Time.
» "%x": Date.
» "%Y": Year ("0000"-"9999").
» "%y": Year ("00"-"99").
» "%Z": Yime zone.
» "%%": "%".
Mask
The description of a return format as a combination of free text and the placeholders "%1", "%2", ... for the respective items.
Table
A sequence of records seperated with "\n".
Every record may consist of several fields seperated with "\t". When used to identify a record its first field is also known as the key.
There are the following internal HTE tables:
» "ENV": The web server parameters (accessed with "<!ENV>" "<!TABLE:ENV>").
» "PAR": The HTE parameters (accessed with "<!"key">" "<!SET>" "<!TABLE:PAR>").
» "VAR": A working table (accessed with "<!EACH>" "<!GET>" "<!OPEN>" "<!PUT>" "<!TABLE:VAR>").
HTE tags (ordered by priority of evaluation)