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)