use crate::{Html, HtmlSanitizerMode, SanitizerConfig};
pub fn sanitize_html(
s: &str,
mode: HtmlSanitizerMode,
remove_reply_fallback: RemoveReplyFallback,
) -> String {
let mut config = match mode {
HtmlSanitizerMode::Strict => SanitizerConfig::strict(),
HtmlSanitizerMode::Compat => SanitizerConfig::compat(),
};
if remove_reply_fallback == RemoveReplyFallback::Yes {
config = config.remove_reply_fallback();
}
sanitize_inner(s, &config)
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[allow(clippy::exhaustive_enums)]
pub enum RemoveReplyFallback {
Yes,
No,
}
pub fn remove_html_reply_fallback(s: &str) -> String {
let config = SanitizerConfig::new().remove_reply_fallback();
sanitize_inner(s, &config)
}
fn sanitize_inner(s: &str, config: &SanitizerConfig) -> String {
let html = Html::parse(s);
html.sanitize_with(config);
html.to_string()
}