liquid 0.21.1

The liquid templating language for Rust
Documentation
#[macro_use]
extern crate difference;

use liquid::*;

fn compare(input: &str, expected: &str) {
    let input = input.replace("", " ");
    let expected = expected.replace("", " ");

    let template = ParserBuilder::with_stdlib()
        .build()
        .unwrap()
        .parse(&input)
        .unwrap();

    let output = template.render(&Object::default()).unwrap();

    assert_diff!(&expected, &output, " ", 0);
}

#[test]
pub fn no_whitespace_control() {
    compare(
        "
topic1
……{% assign foo = \"bar\" %}
……{% if foo %}
…………-……{{ foo }}
……{% endif %}
",
        "
topic1
……
……
…………-……bar
……
",
    );
}

#[test]
pub fn simple_whitespace_control() {
    compare(
        "
topic1
……{% assign foo = \"bar\" -%}
……{% if foo -%}
…………-……{{- foo }}
……{%- endif %}
",
        "
topic1
……-bar
",
    );
}

#[test]
pub fn double_sided_whitespace_control() {
    compare(
        "
topic1
……{%- assign foo = \"bar\" -%}
……-……{{- foo -}}……

",
        "
topic1-bar\
",
    );
}