Liquid assign to variable in template



examples/liquid/liquid-assign/src/main.rs
use std::fs::read_to_string;
use liquid::partials::{EagerCompiler, InMemorySource};

pub type Partials = EagerCompiler<InMemorySource>;

fn main() {
    let mut partials = Partials::empty();
    let filename ="templates/incl/header.txt";
    let template = read_to_string(filename).unwrap();
    partials.add(filename, template);

    let template = liquid::ParserBuilder::with_stdlib()
        .partials(partials)
        .build().unwrap()
        .parse_file("templates/page.txt").unwrap();

    let globals = liquid::object!({
        "title": "Liquid",
        "name": "Foo Bar",
        "value": "some value",
    });
    let output = template.render(&globals).unwrap();
    println!("{}", output);
}

examples/liquid/liquid-assign/templates/page.txt
{% assign title = "Other title" %}
{% include 'templates/incl/header.txt' %}

title in page template: {{title}}
name in page template: {{name}}

examples/liquid/liquid-assign/templates/incl/header.txt
title in header: {{title}}
value in header: {{value}}

examples/liquid/liquid-assign/out.txt
title in header: Other title
value in header: some value


title in page template: Other title
name in page template: Foo Bar