Crate mage

Source
Expand description

Mage is an intuitive and powerful template engine.

Supported keywords: for if include set

Mage support expression evaluate with crate eval. Built-in functions and operators documentation: eval.

§Examples

Render template from string:

use mage::Template;

let source = "{{if true}}Hello world!{{if}}";
let output = Template::new().template(source).render().unwrap();
assert_eq!(output, "Hello world!");

Render template from file:

use mage::Template;

let output = Template::new()
    .root("examples")
    .extension("html")
    .open("main")
    .unwrap()
    .render()
    .unwrap();

§Keywords

§For

Loop a value.

{{for value in object}}
    {{value}}
{{for}}

{{for value, key in object}}
    {{key}}
    {{value}}
{{for}}

§If

Conditionally render a block.

{{if boolean}}
    Hello world!
{{elseif boolean}}
    Hello world!
{{elseif boolean}}
    Hello world!
{{else}}
    Hello world!
{{if}}

§Include

Include a sub template.

{{include views/header}}

§Set

Set a value to current context.

{{set boolean=true}}
{{set number=123}}
{{set string='Hello world!'}}

Structs§

Cache
Compiled template cache
Function
Custom function
RenderOptions
Render options
Template
Template builder

Enums§

Error
Template parsing error
ExpressionError
Expression parsing error
Value
Represents any valid JSON value.

Functions§

to_value
Convert variable to serde_json::Value

Type Aliases§

Context
Custom context.
Contexts
Custom contexts. The value of the last context is searched first.
Functions
Custom functions.