summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorP. J. McDermott <pjm@nac.net>2013-09-23 22:33:39 (EDT)
committer P. J. McDermott <pjm@nac.net>2013-09-23 22:33:39 (EDT)
commit59e9124fa464044dad612e9d4665130a3ce216b9 (patch)
treecf1cb38cfee9c335ffbf74e40fddc7c3654611f1
parentebb7807c7cc57988f28290f931a3ac875d8cd8ba (diff)
downloadssic-59e9124fa464044dad612e9d4665130a3ce216b9.zip
ssic-59e9124fa464044dad612e9d4665130a3ce216b9.tar.gz
ssic-59e9124fa464044dad612e9d4665130a3ce216b9.tar.bz2
README: New file.
-rw-r--r--README78
1 files changed, 78 insertions, 0 deletions
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:
+
+ <!--#command tag1="value1" tag2="value2" -->
+
+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.