fix: jump to search for operand

This commit is contained in:
Jacky Zhao 2022-11-21 23:36:27 -08:00
parent f08a76a738
commit e374e3abd4
4 changed files with 19 additions and 15 deletions

View File

@ -56,6 +56,6 @@
}
const allIds = new Set([...getByField("title"), ...getByField("content")])
const finalResults = [...allIds].map(formatForDisplay)
displayResults(finalResults, true)
displayResults(term, finalResults, true)
})
})()

View File

@ -24,7 +24,7 @@ async function searchContents(query) {
},
body: JSON.stringify({
query: query,
limit: 8,
limit: 10,
}),
})
if (result.ok) {
@ -48,7 +48,7 @@ registerHandlers(
debounce((e) => {
let term = e.target.value
if (term !== "") {
searchContents(term).then((results) => displayResults(results))
searchContents(term).then((results) => displayResults(term, results))
}
}),
)

View File

@ -115,9 +115,11 @@ const resultToHTML = ({ url, title, content }) => {
}
const redir = (id, term) => {
// SPA navigation
const shouldTrim = PRODUCTION && SEARCH_ENABLED
const baseURLPrefix = shouldTrim ? "" : BASE_URL.replace(/\/$/g, "")
const urlString = `${baseURLPrefix}${id}#:~:text=${encodeURIComponent(term)}/`
window.Million.navigate(
new URL(`${BASE_URL.replace(/\/$/g, "")}${id}#:~:text=${encodeURIComponent(term)}/`),
new URL(urlString),
".singlePage",
)
closeSearch()
@ -179,7 +181,7 @@ const registerHandlers = (onInputFn) => {
})
}
const displayResults = (finalResults, extractHighlight = false) => {
const displayResults = (term, finalResults, extractHighlight = false) => {
const results = document.getElementById("results-container")
if (finalResults.length === 0) {
results.innerHTML = `<button class="result-card">
@ -189,16 +191,16 @@ const displayResults = (finalResults, extractHighlight = false) => {
} else {
results.innerHTML = finalResults
.map((result) => {
if (extractHighlight) {
return resultToHTML({
url: result.url,
title: highlight(result.title, term),
content: highlight(removeMarkdown(result.content), term)
})
} else {
return resultToHTML(result)
}
if (extractHighlight) {
return resultToHTML({
url: result.url,
title: highlight(result.title, term),
content: highlight(removeMarkdown(result.content), term)
})
} else {
return resultToHTML(result)
}
}
)
.join("\n")
const anchors = [...document.getElementsByClassName("result-card")]

View File

@ -79,6 +79,8 @@
"indices/contentIndex.json" | resources.Fingerprint "md5" | resources.Minify
}}
<script>
const SEARCH_ENABLED = {{.Site.Data.config.search.enableSemanticSearch}}
const PRODUCTION = {{ hugo.IsProduction }}
const BASE_URL = {{.Site.BaseURL}}
const fetchData = Promise.all([
fetch("{{ $linkIndex.Permalink }}")