|
|
@ -797,12 +797,14 @@ pub fn generate_moderators_url(community_id: &DbUrl) -> Result<DbUrl, LemmyError
|
|
|
|
/// Sanitize HTML with default options. Additionally, dont allow bypassing markdown
|
|
|
|
/// Sanitize HTML with default options. Additionally, dont allow bypassing markdown
|
|
|
|
/// links and images
|
|
|
|
/// links and images
|
|
|
|
pub fn sanitize_html(data: &str) -> String {
|
|
|
|
pub fn sanitize_html(data: &str) -> String {
|
|
|
|
let sanitized = ammonia::Builder::default()
|
|
|
|
ammonia::Builder::default()
|
|
|
|
.rm_tags(&["a", "img"])
|
|
|
|
.rm_tags(&["a", "img"])
|
|
|
|
.clean(data)
|
|
|
|
.clean(data)
|
|
|
|
.to_string();
|
|
|
|
.to_string()
|
|
|
|
// restore markdown quotes
|
|
|
|
// restore markdown quotes
|
|
|
|
sanitized.replace(">", ">")
|
|
|
|
.replace(">", ">")
|
|
|
|
|
|
|
|
// restore white space
|
|
|
|
|
|
|
|
.replace(" ", " ")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pub fn sanitize_html_opt(data: &Option<String>) -> Option<String> {
|
|
|
|
pub fn sanitize_html_opt(data: &Option<String>) -> Option<String> {
|
|
|
@ -839,5 +841,7 @@ mod tests {
|
|
|
|
assert_eq!(sanitized, " hello");
|
|
|
|
assert_eq!(sanitized, " hello");
|
|
|
|
let sanitized = sanitize_html("<img src='http://example.com'> test");
|
|
|
|
let sanitized = sanitize_html("<img src='http://example.com'> test");
|
|
|
|
assert_eq!(sanitized, " test");
|
|
|
|
assert_eq!(sanitized, " test");
|
|
|
|
|
|
|
|
let sanitized = sanitize_html("Hello World");
|
|
|
|
|
|
|
|
assert_eq!(sanitized, "Hello World");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|