Markus Hennecke 4ed91ea78e We won't support a template root path for now | 6 anos atrás | |
---|---|---|
.. | ||
README.tmpl.md | 6 anos atrás |
This is meant to be compatible with perls HTML::Template module.
The following files can be used to use this implementation in other programs:
buffer.c
buffer.h
template.c
template.h
See the header file template.h
for functions aiding in setting up
a struct tmpl_data
structure to be used as an argument to the
tmpl_parse()
and tmpl_parse_file()
functions.
Usage: <TMPL_VAR name="identifier">
Replaced by the variable value from the current struct tmpl_data
context.
Usage: <TMPL_LOOP name="loopname">...</TMPL_LOOP>
Implementation: The filter parser stores the position of the loop begin/end
and calls a new instance of itself for each struct tmpl_data
in the
struct tmpl_loop
. If no such data exists or the loop name was not found
the parser continues after the </TMPL_LOOP>
tag.
It is possible to build complex data structures with nested loops.
Usage: <TMPL_INCL name="filename">
or <TMPL_INCLUDE name="filename">
Includes the "filename" as if it was part of the template to the output.
Implementation: A new parser instance is generated with the files content
and the current struct tmpl_data
object is passed as the data structure.
Usage: <TMPL_IF name="identifier">...</TMPL_IF>
If the "identifier" references a loop the condition evaluates to true
if
the loop is not empty. If a variable is referenced the variable will evaluate
to false
if one of the following conditions apply:
Variable does not exist
Variable is empty
Variable contains the string '0' (zero)
Implementation: The filter parser takes the </TMPL_IF>
tag and
passes the range between those tags to a new instance of the parser with
the current struct tmpl_data
. In case of an <TMPL_ELSE>
belonging to
the conditional block either the part before the <TMPL_ELSE>
or after the
<TMPL_ELSE>
is parsed by passing the current struct tmpl_data
object to
a new parser instance.
Usage: <TMPL_UNLESS name="identifier">...</TMPL_UNLESS>
Same as TMPL_IF
but logically negated.
Usage: <TMPL_IF name="identifier">...<TMPL_ELSE>...</TMPL_IF>
Works the same way with TMPL_UNLESS
.
Unless the perl HTML::Template module the name attribute is required exacactly in the form given above to simplify parsing.