From faf2169f8f856e748ce84c1cd630ea295d5c4bff Mon Sep 17 00:00:00 2001 From: hulufei Date: Thu, 5 Mar 2020 14:17:56 +0800 Subject: [PATCH] Improve `pick` command to display more html entities properly --- Cargo.toml | 3 ++- src/helper.rs | 22 +++++----------------- 2 files changed, 7 insertions(+), 18 deletions(-) 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 { // 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; // 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) } } }