Expand description
Render html templates.
§Examples
// variables
let data = json!({ "foo": "bar" });
let template = r"{{ foo }}";
let expected = "bar";
assert_eq!(render(template, data), expected);
// logic statements
let data = json!({ "foo": "bar" });
let template = r"{{ if foo }}{{ foo }}{{ else }}foo is not set{{ endif }}";
let expected = "bar";
assert_eq!(render(template, data), expected);
let data = json!({ "foo": null });
let template = r"{{ if foo }}{{ foo }}{{ else }}foo is not set{{ endif }}";
let expected = "foo is not set";
assert_eq!(render(template, data), expected);
// for loop
let data = json!({ "items": ["a", "b", "c"] });
let template = r"{{ for item in items }}{{ item }}{{ endfor }}";
let expected = "abc";
assert_eq!(render(template, data), expected);
let data = json!({ "items": [] });
let template = r"{{ for item in items }}{{ item }}{{ endfor }}";
let expected = "";
assert_eq!(render(template, data), expected);
// accessing by index
let data = json!({ "items": ["a", "b", "c"] });
let template = r"{{ items[0] }}";
let expected = "a";
assert_eq!(render(template, data), expected);
let data = json!({ "items": ["a", "b", "c"] });
let template = r"{{ items[1] }}";
let expected = "b";
assert_eq!(render(template, data), expected);
let data = json!({ "items": ["a", "b", "c"] });
let template = r"{{ items[2] }}";
let expected = "c";
assert_eq!(render(template, data), expected);
// combining logic
let data = json!({
"foo": "bar",
"items": ["a", "b", "c"],
"show_items": true,
"show_foo": false,
});
let template = r"{{ if show_items }}{{ for item in items }}{{ item }}{{ endfor }}{{ endif }}{{ if show_foo }}{{ foo }}{{ endif }}";
let expected = "abc";
assert_eq!(render(template, data), expected);
let data = json!({
"foo": "bar",
"items": ["a", "b", "c"],
"show_items": true,
"show_foo": false,
});
let template = r"{{ if show_items }}{{ for item in items }}{{ item }}{{ endfor }}{{ endif }}{{ if show_foo }}{{ foo }}{{ else }}foo is not set{{ endif }}";
let expected = "abcfoo is not set";
assert_eq!(render(template, data), expected);
// blank template
let data = json!({});
let template = "";
let expected = "";
assert_eq!(render(template, data), expected);
// invalid variable
let data = json!({ "foo": "bar" });
let template = "{{ baz }}";
let expected = "null";
assert_eq!(render(template, data), expected);
// invalid index
let data = json!({ "items": ["a", "b", "c"] });
let template = "{{ items[5] }}";
let expected = "null";
assert_eq!(render(template, data), expected);
// invalid statement
let data = json!({});
let template = "{{ if foo }}{{ endif }}";
let expected = "";
assert_eq!(render(template, data), expected);
Structs§
- Regex
- A compiled regular expression for matching Unicode strings.
Enums§
- Value
- Represents any valid JSON value.
Traits§
- Join
- This trait brings the
join
andwrite_join
methods into scope.