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 a JSON value

Functions

to_value

Shortcut function to encode a T into a JSON Value

Type Definitions

Context

Custom context.

Contexts

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

Functions

Custom functions.