index : livejrnl-rs.git

ascending towards madness

use markdown::CompileOptions;

pub fn markdown(value: String) -> String {
	let result = markdown::to_html_with_options(&value, &markdown::Options {
		compile: CompileOptions {
			allow_dangerous_html: true,
			allow_dangerous_protocol: true,
			..CompileOptions::default()
		},
		..markdown::Options::gfm()
	});
	result.unwrap_or_default()
}

pub fn emoji(value: String) -> String { 
	emojic::text::parse_text(&value)
}

fn slugify(value: String) -> String {
	str_slug::slug(value).to_string()
}

pub fn register_filters(env: &mut minijinja::Environment<'_>) {
	env.add_filter("markdown", markdown);
	env.add_filter("emoji", emoji);
	env.add_filter("slugify", slugify);
}