Contents:
[page NNN]
section groupSections of the [page NNN]
group are used to generate
stand-alone HTML pages as well as almost arbitrary text files residing
within your site's tree.
The name of the file to generate is defined by the section name, it is that NNN thing, relative to your site's tree root (see the [general]/rootdir parameter description). Yes, dots and slashes are okay in the name, so, for example, you can have something like this:
[page img/.htaccess] body = Options +Indexes +
(the “+
” is needed to make sure the file is
correctly ended with a newline character).
The page name may be overriden by the path
parameter, which,
if given, is passed through the macroprocessor. Setting it to an empty
string, or a string "."
, or "-"
, will cause the
page generation to be silently suppressed. This is primarily used by site
templates. In case you specify the path
parameter, the name
of the section looses its role and is only required to differ from other
section names within the [page ]
group; you can set it to
whatever (distinct) name you want.
There are two ways to generate a page: on its own or by expanding a
template (defined by the appropriate [template NNN]
section). Creating a page without a template involves parameter
named body
, which specifies the text to be placed into the
file. Macroprocessing is done on its value, so you can use
HTML snippets and
other things available through macros. All other parameters are silently
ignored, provided that there's no parameter named “template
”.
To generate the page (or a generic file) using a template, the
template
parameter must be given; its value specifies the
template identifier. If this parameter is present, the body
parameter will not be used for generation and will be ignored in case it is
given (strictly speaking, this is true unless the template being used
depends on an argument named “body
”, but this is strongly
discouraged to avoid confusing). Additional parameters may be specified as
required for the template. This method of stand-alone page
generation is described in the next
section.
Whatever method is selected, you can affect the mode (that is, access
permissions) for the generated file. This is done by specifying
another parameter, named chmod
, whose value is the desired
mode value, represented by an octal number. For example, adding
chmod = 600
to the section will make the file accessible (for reading and writing) to
its owner only. This may be useful for files that are not web pages and
are not intended to be accessible through the HTTP server; configuration
file for the Thalassa CGI program gives a good example. Please
note that the value is passed directly to the fchmod
system
call, so it is not affected by your current umask
value.
Please note that macroprocessing is NOT done for the
template
and chmod
parameters. In
particular, the template
parameter's value must be exactly equal to the appropriate
[template ]
section name. From the other hand, all
parameters requested by the template are passed through the macroprocessor
before processing the template.
[template ID]
section groupSections headed as [template ID]
(where ID
is a template identifier) specify templates, which can be used to generate
stand-alone pages of similar structure.
A section of this group has exactly two parameters:
params
, a whitespace-separated list of parameters to be
set by the [page ]
section and substituted as macros with
the same names within the template body;body
, which is the template itself.Consider the following example:
[template dont] params = subject epilogue body = Don't %subject% a %subject% until the %subject% +%subject%s you! %epilogue% [page trouble.txt] template = dont subject = trouble epilogue = Or else you'll have a trouble. [page cheat.txt] template = dont subject = cheat epilogue = Cheaters are stinky.
Two files will be generated: trouble.txt
will contain
Don't trouble a trouble until the trouble troubles you! Or else you'll have a trouble.
and cheat.txt
will have
Don't cheat a cheat until the cheat cheats you! Cheaters are stinky.
Please note that macroprocessing is NOT done for the
params
parameter's value. The body
parameter is certainly passed through the macroprocessor to get the
resulting text, and for this run the macroprocessor is supplied with simple
(argument-less) macros for each of the words mentioned in the
params
, in addition to all macros available everywhere.