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

Loading…
Cancel
Save