mdvault-core 0.7.2

Core library for mdvault - markdown vault management
Documentation
use mdvault_core::templates::engine::{RenderContext, render};
use mdvault_core::templates::repository::LoadedTemplate;
use std::path::PathBuf;

fn loaded(contents: &str) -> LoadedTemplate {
    LoadedTemplate {
        logical_name: "test".into(),
        path: PathBuf::from("test.md"),
        content: contents.to_string(),
        frontmatter: None,
        raw_frontmatter: None,
        body: contents.to_string(),
    }
}

#[test]
fn render_replaces_known_variables() {
    let tpl = loaded("Hello {{name}}!");
    let mut ctx = RenderContext::new();
    ctx.insert("name".into(), "Alice".into());

    let out = render(&tpl, &ctx).expect("render ok");
    assert_eq!(out, "Hello Alice!");
}

#[test]
fn render_leaves_unknown_variables_intact() {
    let tpl = loaded("Hello {{name}} and {{unknown}}!");
    let mut ctx = RenderContext::new();
    ctx.insert("name".into(), "Alice".into());

    let out = render(&tpl, &ctx).expect("render ok");
    assert_eq!(out, "Hello Alice and {{unknown}}!");
}