Skip to main content

atom_engine/filters/
html.rs

1use serde_json::Value;
2use std::collections::HashMap;
3
4use super::FilterResult;
5
6pub fn escape_html(value: &Value, _: &HashMap<String, Value>) -> FilterResult {
7    if let Some(s) = value.as_str() {
8        let escaped = s
9            .replace('&', "&amp;")
10            .replace('<', "&lt;")
11            .replace('>', "&gt;")
12            .replace('"', "&quot;")
13            .replace('\'', "&#x27;")
14            .replace('/', "&#x2F;");
15        Ok(Value::String(escaped))
16    } else {
17        Ok(value.clone())
18    }
19}
20
21pub fn safe(value: &Value, _: &HashMap<String, Value>) -> FilterResult {
22    Ok(value.clone())
23}