From b373f0084089cfd75b0967a5ef90d8feb0a6f5ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vignesh=20Sarma=20K=20=28=E0=B4=B5=E0=B4=BF=E0=B4=98?= =?UTF-8?q?=E0=B5=8D=E0=B4=A8=E0=B5=87=E0=B4=B7=E0=B5=8D=20=E0=B4=B6?= =?UTF-8?q?=E0=B5=AA=E0=B4=AE=20=E0=B4=95=E0=B5=86=29?= Date: Tue, 28 Aug 2018 15:06:09 +0530 Subject: [PATCH] add htmlescape and update to_html fn to use it. tests and imports also updated. --- Cargo.toml | 1 + src/lib.rs | 1 + src/snippet/mod.rs | 9 +++++---- 3 files changed, 7 insertions(+), 4 deletions(-) mode change 100644 => 100755 src/lib.rs diff --git a/Cargo.toml b/Cargo.toml index ab767d3fd..1ec1b65d5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,6 +48,7 @@ census = "0.1" fnv = "1.0.6" owned-read = "0.4" failure = "0.1" +htmlescape = "0.3.1" [target.'cfg(windows)'.dependencies] winapi = "0.2" diff --git a/src/lib.rs b/src/lib.rs old mode 100644 new mode 100755 index 0d64752d9..4f4d364a0 --- a/src/lib.rs +++ b/src/lib.rs @@ -154,6 +154,7 @@ extern crate stable_deref_trait; extern crate tempdir; extern crate tempfile; extern crate uuid; +extern crate htmlescape; #[cfg(test)] #[macro_use] diff --git a/src/snippet/mod.rs b/src/snippet/mod.rs index 2429ac2e0..7413b8bb8 100644 --- a/src/snippet/mod.rs +++ b/src/snippet/mod.rs @@ -6,6 +6,7 @@ use Index; use schema::FieldValue; use schema::Value; use tokenizer::BoxedTokenizer; +use htmlescape::encode_minimal; #[derive(Debug)] pub struct HighlightSection { @@ -70,13 +71,13 @@ impl Snippet { let mut start_from: usize = 0; for item in self.highlighted.iter() { - html.push_str(&self.fragments[start_from..item.start]); + html.push_str(&encode_minimal(&self.fragments[start_from..item.start])); html.push_str(HIGHLIGHTEN_PREFIX); - html.push_str(&self.fragments[item.start..item.stop]); + html.push_str(&encode_minimal(&self.fragments[item.start..item.stop])); html.push_str(HIGHLIGHTEN_POSTFIX); start_from = item.stop; } - html.push_str(&self.fragments[start_from..self.fragments.len()]); + html.push_str(&encode_minimal(&self.fragments[start_from..self.fragments.len()])); html } } @@ -202,6 +203,6 @@ Rust won first place for \"most loved programming language\" in the Stack Overfl } let snippet = select_best_fragment_combination(fragments, &text); assert_eq!(snippet.fragments, "Rust is a systems programming language sponsored by Mozilla which describes it as a \"safe".to_owned()); - assert_eq!(snippet.to_html(), "Rust is a systems programming language sponsored by Mozilla which describes it as a \"safe".to_owned()) + assert_eq!(snippet.to_html(), "Rust is a systems programming language sponsored by Mozilla which describes it as a "safe".to_owned()) } }