Crate mage [] [src]

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 Definitions

Context

Custom context.

Contexts

Custom contexts. The value of the last context is searched first.

Functions

Custom functions.