1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
use handlebars::{Context, Handlebars, Helper, Output, RenderContext, RenderError}; pub fn theme_option( h: &Helper<'_, '_>, _r: &Handlebars, ctx: &Context, rc: &mut RenderContext<'_>, out: &mut dyn Output, ) -> Result<(), RenderError> { trace!("theme_option (handlebars helper)"); let param = h.param(0).and_then(|v| v.value().as_str()).ok_or_else(|| { RenderError::new("Param 0 with String type is required for theme_option helper.") })?; let theme_name = rc .evaluate_absolute(ctx, "default_theme", true)? .as_str() .ok_or_else(|| RenderError::new("Type error for `default_theme`, string expected"))?; out.write(param)?; if param.to_lowercase() == theme_name.to_lowercase() { out.write(" (default)")?; } Ok(()) }