diff --git a/Cargo.toml b/Cargo.toml index 94ed9ea..576da49 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,6 +31,7 @@ serde_derive = "1.0.104" serde_json = "1.0.44" pyo3 = "0.8.5" toml = "0.5.5" +escaper = "0.1.0" [dependencies.diesel] version = "1.4.3" @@ -38,4 +39,4 @@ features = ["sqlite"] [dependencies.reqwest] version = "0.10.3" -features = ["blocking", "gzip", "json"] \ No newline at end of file +features = ["blocking", "gzip", "json"] diff --git a/src/helper.rs b/src/helper.rs index 98a5ade..76740f5 100644 --- a/src/helper.rs +++ b/src/helper.rs @@ -94,6 +94,7 @@ mod filter { mod html { // use crate::Error; use colored::Colorize; + use escaper::decode_html; pub enum Token { Plain(String), Bold(String), @@ -109,15 +110,7 @@ mod html { impl HTML for String { fn ser(&self) -> Vec<Token> { // empty tags - let mut tks = self.to_string(); - - // converting symbols - tks = tks - .replace(r#"&"#, "&") - .replace(r#"""#, "\"") - .replace(r#" "#, " ") - .replace(r#"'"#, "'"); - + let tks = self.to_string(); let res: Vec<Token>; // styled { @@ -180,14 +173,9 @@ mod html { } // post replace - let mut tks = tks.join(""); - tks = tks - .replace(r#"<"#, "<") - .replace(r#">"#, ">") - .replace(r#"≥"#, ">=") - .replace(r#"≤"#, "<="); - - tks + let tks = tks.join(""); + + decode_html(&tks).unwrap_or(tks) } } }