Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Render A Basic Template From JSON Data With MiniJinja In Rust

This is a quick example showing how to take a string of JSON and use it as data to populate a MiniJinja template.

Code

use minijinja::Environment;
use serde_json::Value;
use std::fs;

fn main() {
    // let json = fs::read_to_string("src/data.json").unwrap();
    let json = r#"{ "name": "World" }"#.to_string();

    // let template = fs::read_to_string("src/templates/mixer.html").unwrap();
    let template = r#"<h1>Hello, {{ name }}</h1>.to_string()"#.to_string();

    let output = render_template(template, json);
    dbg!(output);
}

fn render_template(template: String, json: String) -> String {
    let data: Value = serde_json::from_str(json.as_str()).unwrap();
    let mut env = Environment::new();
    env.add_template("template", template.as_str()).unwrap();
    let tmpl = env.get_template("template").unwrap();
    tmpl.render(data).unwrap().to_string()
}

Create a page from JSON with MiniJinja