diff --git a/assets/js/theme.js b/assets/js/theme.js
index de1bdac3..e7310c92 100644
--- a/assets/js/theme.js
+++ b/assets/js/theme.js
@@ -282,7 +282,7 @@ class FixIt {
const results = {};
window._index.search(query).forEach(({ item, refIndex, matches }) => {
let title = item.title;
- let content = item.content.replace(/&/g, '&').replace(//g, '>')
+ let content = item.content;
matches.forEach(({ indices, value, key }) => {
if (key === 'content') {
content = this._applyHighlightToText(content, indices, highlightTag);
@@ -343,7 +343,7 @@ class FixIt {
templates: {
suggestion: ({ title, uri, date, context }) =>
`
${context}
`,
- empty: ({ query }) => `${searchConfig.noResultsFound}: "${query}"
`,
+ empty: ({ query }) => `${searchConfig.noResultsFound}: "${this.util.HTMLEscape(query)}"
`,
footer: ({ }) => {
let searchType, icon, href;
switch (searchConfig.type) {
diff --git a/assets/js/util.js b/assets/js/util.js
index 57c9344e..9c24cf03 100644
--- a/assets/js/util.js
+++ b/assets/js/util.js
@@ -133,4 +133,14 @@ export default class Util {
}
return false;
}
+
+ HTMLEscape(str) {
+ return str.replace(/[&<>"']/g, char => ({
+ '&': '&',
+ '<': '<',
+ '>': '>',
+ '"': '"',
+ "'": '''
+ })[char]);
+ }
}
diff --git a/layouts/home.search.json b/layouts/home.search.json
index f0907ace..048f0ea5 100644
--- a/layouts/home.search.json
+++ b/layouts/home.search.json
@@ -55,8 +55,8 @@
{{- $anchor = replace (index (split $contentm ">") 0) `"` "" -}}
{{- $contentm = printf "