use super::prelude::*;
use crate::data::PageRef;
use crate::tree::VariableMap;
pub fn render_include(
ctx: &mut HtmlContext,
location: &PageRef,
variables: &VariableMap,
elements: &[Element],
) {
debug!("Rendering include (location {location:?})");
ctx.variables_mut().push_scope(variables);
render_elements(ctx, elements);
ctx.variables_mut().pop_scope();
}
pub fn render_variable(ctx: &mut HtmlContext, name: &str) {
let value = ctx.variables().get(name);
debug!(
"Rendering variable (name '{}', value '{}'",
name,
value.unwrap_or("<none>"),
);
let value = match value {
Some(value) => str!(value),
None => format!("{{${name}}}"),
};
ctx.push_escaped(&value);
}