fix: highlights being stripped in non-semantic search mode
This commit is contained in:
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…
Reference in New Issue
Block a user