z_template_compiler_runtime (zotonic_core v1.0.0-rc.14)

Simple runtime for the compiled templates. Needs to be copied and adapted for different environments.

Link to this section Summary

Functions

Render image/image_url/media/url/lib tag. The Expr is the media item or dispatch rule.
Render a block, cache the result for some time. Caching should be implemented by the runtime.
Compile time mapping of nested value lookup
Render a custom tag (Zotonic scomp)
HTML escape a value
Find a list of values at once, easier and more efficient than a nested find_value/4 Add pattern matching here for nested lookups.
Find a list of values at once, easier and more efficient than a nested find_value/4 Add pattern matching here for nested lookups.
Find the value of key in some structure.
Fetch the translations for the given text.
Check if a file has been modified
Render a script block, for Zotonic this is added to the scripts in the Context
Find the best fitting translation.
Dynamic mapping of a template to a template name, context sensitive on the template vars.
Dynamically find all templates matching the template
A model call with optional payload. Compiled from m.model.path::payload
Remove spaces between HTML tags
Convert a value to a boolean.
Convert a value to a list.
Convert a value to an iolist, used for converting values in {{ ... }} expressions.
Convert a value to something that can be handled as an argument to scomps.
Convert an argument list's values to something that can be handled as an argument to scomps.
Called when a block function is called
Called when compiling a module
Called when a template is rendered (could be from an include)

Link to this section Functions

Link to this function

builtin_tag(Tag, Expr, Args, Vars, Context)

-spec builtin_tag(template_compiler:builtin_tag(),
            Expr :: term(),
            Args :: list(),
            Vars :: map(),
            Context :: term()) ->
               template_compiler:render_result().
Render image/image_url/media/url/lib tag. The Expr is the media item or dispatch rule.
Link to this function

cache_tag(MaxAge, Name, Args, Fun, TplVars, Context)

-spec cache_tag(MaxAge :: integer(),
          Name :: binary(),
          Args :: list(),
          function(),
          TplVars :: map(),
          Context :: term()) ->
             template_compiler:render_result().
Render a block, cache the result for some time. Caching should be implemented by the runtime.
Link to this function

compile_map_nested_value(Tokens, ContextVar, Context)

-spec compile_map_nested_value(Tokens :: list(), ContextVar :: string(), Context :: term()) ->
                            NewTokens :: list().
Compile time mapping of nested value lookup
Link to this function

custom_tag(Tag, Args, Vars, Context)

-spec custom_tag(Tag :: atom(), Args :: list(), Vars :: map(), Context :: term()) ->
              template_compiler:render_result().
Render a custom tag (Zotonic scomp)
Link to this function

escape(Value, Context)

-spec escape(Value :: iodata() | undefined, Context :: z:context()) -> iodata().
HTML escape a value
Link to this function

find_nested_value(Ks, TplVars, Context)

Find a list of values at once, easier and more efficient than a nested find_value/4 Add pattern matching here for nested lookups.
Link to this function

find_nested_value(V, Ks, TplVars, Context)

Find a list of values at once, easier and more efficient than a nested find_value/4 Add pattern matching here for nested lookups.
Link to this function

find_value(Key, Vars, TplVars, Context)

-spec find_value(Key :: term(), Vars :: term(), TplVars :: map(), Context :: term()) -> term().
Find the value of key in some structure.
Link to this function

get_context_name(Context)

-spec get_context_name(term()) -> atom().
Link to this function

get_translations(Text, Context)

-spec get_translations(binary(), term()) -> binary() | z:trans().
Fetch the translations for the given text.
Link to this function

is_modified(Filename, Mtime, Context)

-spec is_modified(file:filename_all(), calendar:datetime(), term()) -> boolean().
Check if a file has been modified
Link to this function

javascript_tag(Block, TplVars, Context)

-spec javascript_tag(template_compiler:render_result(), map(), term()) ->
                  template_compiler:render_result().
Render a script block, for Zotonic this is added to the scripts in the Context
Link to this function

lookup_translation(Trans, TplVars, Context)

-spec lookup_translation(z:trans(), TplVars :: map(), Context :: term()) -> binary().
Find the best fitting translation.
Link to this function

map_template(Template_file, Vars, Context)

-spec map_template(template_compiler:template(), map(), term()) ->
                {ok, template_compiler:template_file()} | {error, enoent | term()}.
Dynamic mapping of a template to a template name, context sensitive on the template vars.
Link to this function

map_template_all(Template, Vars, Context)

-spec map_template_all(template_compiler:template(), map(), term()) ->
                    [template_compiler:template_file()].
Dynamically find all templates matching the template
Link to this function

model_call(Model, Path, Payload, Context)

-spec model_call(Model :: atom(), Path :: list(), Payload :: term(), Context :: term()) ->
              template_compiler:model_return().
A model call with optional payload. Compiled from m.model.path::payload
Link to this function

set_context_vars(Args, Context)

-spec set_context_vars(map() | list(), term()) -> term().
Link to this function

spaceless_tag(Value, TplVars, Context)

-spec spaceless_tag(template_compiler:render_result(), map(), term()) ->
                 template_compiler:render_result().
Remove spaces between HTML tags
Link to this function

to_bool(Value, Context)

-spec to_bool(Value :: term(), Context :: term()) -> boolean().
Convert a value to a boolean.
Link to this function

to_list(Value, Context)

-spec to_list(Value :: term(), Context :: term()) -> list().
Convert a value to a list.
Link to this function

to_render_result(Value, TplVars, Context)

-spec to_render_result(Value :: term(), TplVars :: map(), Context :: term()) ->
                    template_compiler:render_result().
Convert a value to an iolist, used for converting values in {{ ... }} expressions.
Link to this function

to_simple_value(Value, Context)

-spec to_simple_value(Value :: term(), Context :: term()) -> term().
Convert a value to something that can be handled as an argument to scomps.
Link to this function

to_simple_values(Args, Context)

-spec to_simple_values(Args :: list(), Context :: term()) -> list().
Convert an argument list's values to something that can be handled as an argument to scomps.
Link to this function

trace_block(_, Name, Module, Context)

-spec trace_block({binary(), integer(), integer()}, atom(), atom(), term()) ->
               ok | {ok, iodata(), iodata()}.
Called when a block function is called
Link to this function

trace_compile(Module, Filename, Options, Context)

-spec trace_compile(atom(), binary(), template_compiler:options(), z:context()) -> ok.
Called when compiling a module
Link to this function

trace_render(Filename, Options, Context)

-spec trace_render(binary(), template_compiler:options(), z:context()) -> ok | {ok, iodata(), iodata()}.
Called when a template is rendered (could be from an include)