Module pl.template
A template preprocessor.
Originally by Ricki Lake
There are two rules:
- lines starting with # are Lua
- otherwise,
$(expr)
is the result of evaluatingexpr
Example:
# for i = 1,3 do $(i) Hello, Word! # end ===> 1 Hello, Word! 2 Hello, Word! 3 Hello, Word!
Other escape characters can be used, when the defaults conflict with the output language.
> for _,n in pairs{'one','two','three'} do static int l_${n} (luaState *state); > end
See the Guide.
Dependencies: pl.utils
Functions
substitute (str[, env]) | expand the template using the specified environment. |
Functions
- substitute (str[, env])
-
expand the template using the specified environment. There are three special fields in the environment table
env
_parent
: continue looking up in this table (e.g._parent=_G
)._brackets
: bracket pair that wraps inline Lua expressions, default is '()'._escape
: character marking Lua lines, default is '#'_inline_escape
: character marking inline Lua expression, default is '$'._chunk_name
: chunk name for loaded templates, used if there is an error in Lua code. Default is 'TMP'.
Parameters:
- str string the template string
- env tab the environment (optional)