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