From 59e9124fa464044dad612e9d4665130a3ce216b9 Mon Sep 17 00:00:00 2001 From: "P. J. McDermott" Date: Mon, 23 Sep 2013 22:33:39 -0400 Subject: [PATCH] README: New file. --- README | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..0bc7d2a --- /dev/null +++ b/README @@ -0,0 +1,78 @@ +Server Side Includes Compiler +============================= + +This is ssic, a Server Side Includes Compiler. + +ssic processes HTML documents with SSI directives formatted as SGML comments. +It can be used to process documents without an HTTP server for local browsing or +to generate static HTML documents to be efficiently served by an HTTP server. +Documents could even be preprocessed, e.g. by a Markdown processor, before being +parsed with ssic. + +The set of commands, tags, and variables supported by ssic is mostly a superset +of those supported by the old NCSA HTTPd and a subset of those supported by +Apache HTTPd's `mod_include`: + + http://web.archive.org/web/19971210170837/http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html + http://httpd.apache.org/docs/current/mod/mod_include.html + +ssic uses the `CGI::SSI` Perl module for directive processing. + +SSI Commands +------------ + +SSI directives are formatted as follows: + + + +Most commands take only one tag. + +The following commands are supported: + + * `config` controls various aspects of processing. There are three valid + tags: + - `errmsg` controls the message that is substituted into the document when + an error occurs. + - `timefmt` is a format string used by `strftime` that controls the format + of dates. + - `sizefmt` controls the units of file sizes. Valid values are `bytes` for + sizes in bytes and `abbrev` for sizes in kibibytes or mebibytes. + * `set` sets the value of a variable. Two tags are accepted: `var` and + `value`. + * `echo` prints the value of an include variable (see below) or environment + variable. The only valid tag is `var`. + * `printenv` prints a list of all environment variables and their values. + * `include` processes and inserts the text of a document into the current + document. There are two valid tags: + - `file` gives a pathname relative to the current directory. + - `virtual` gives a pathname, beginning with `/`, relative to the document + root. + * `exec` executes a shell command. The only valid tag is `cmd`. + * `flastmod` prints the modification date of a specified file. Valid tags are + the same as for the `include` command. + * `fsize` prints the size of a specified file. Valid tags are the same as for + the `include` command. + +Include Variables +----------------- + +The following variables are set: + + * `DATE_GMT` is the current date in UTC. + * `DATE_LOCAL` is the current date in the local timezone. + * `DOCUMENT_NAME` is the current filename. + * `DOCUMENT_ROOT` is the document root, in which files specified with the + `virtual` tag are found. + * `DOCUMENT_URI` is the current filename. + * `LAST_MODIFIED` is the modification date of the current document. + + +Copyright Information +===================== + +Copyright (C) 2013 Patrick "P. J." McDermott + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without any warranty. -- 2.31.1