fix: highlights being stripped in non-semantic search mode

hugo
Jacky Zhao 2 years ago
parent 8fc6b8e28e
commit 6dd4c64a4c

@ -55,16 +55,17 @@ const removeMarkdown = (
const highlight = (content, term) => { const highlight = (content, term) => {
const highlightWindow = 20 const highlightWindow = 20
// try to find direct match first // try to find direct match first
const directMatchIdx = content.indexOf(term) const directMatchIdx = content.indexOf(term)
if (directMatchIdx !== -1) { if (directMatchIdx !== -1) {
const h = highlightWindow / 2 console.log(directMatchIdx)
const h = highlightWindow
const before = content.substring(0, directMatchIdx).split(" ").slice(-h) const before = content.substring(0, directMatchIdx).split(" ").slice(-h)
const after = content const after = content
.substring(directMatchIdx + term.length, content.length - 1) .substring(directMatchIdx + term.length, content.length - 2)
.split(" ") .split(" ")
.slice(0, h) .slice(0, h)
console.log(before, after)
return ( return (
(before.length == h ? `...${before.join(" ")}` : before.join(" ")) + (before.length == h ? `...${before.join(" ")}` : before.join(" ")) +
`<span class="search-highlight">${term}</span>` + `<span class="search-highlight">${term}</span>` +
@ -109,10 +110,9 @@ const highlight = (content, term) => {
// Common utilities for search // Common utilities for search
const resultToHTML = ({ url, title, content }) => { const resultToHTML = ({ url, title, content }) => {
const cleaned = removeMarkdown(content)
return `<button class="result-card" id="${url}"> return `<button class="result-card" id="${url}">
<h3>${title}</h3> <h3>${title}</h3>
<p>${cleaned}</p> <p>${content}</p>
</button>` </button>`
} }
@ -195,7 +195,7 @@ const displayResults = (finalResults, extractHighlight = false) => {
return resultToHTML({ return resultToHTML({
url: result.url, url: result.url,
title: highlight(result.title, term), title: highlight(result.title, term),
content: highlight(result.content, term) content: highlight(removeMarkdown(result.content), term)
}) })
} else { } else {
return resultToHTML(result) return resultToHTML(result)

Loading…
Cancel
Save