fix: flatmap children when highlighting rich preview to avoid body
This commit is contained in:
parent
970a30a139
commit
3b596c9311
@ -81,10 +81,10 @@ function highlight(searchTerm: string, text: string, trim?: boolean) {
|
|||||||
}`
|
}`
|
||||||
}
|
}
|
||||||
|
|
||||||
function highlightHTML(searchTerm: string, innerHTML: string) {
|
function highlightHTML(searchTerm: string, el: HTMLElement) {
|
||||||
const p = new DOMParser()
|
const p = new DOMParser()
|
||||||
const tokenizedTerms = tokenizeTerm(searchTerm)
|
const tokenizedTerms = tokenizeTerm(searchTerm)
|
||||||
const html = p.parseFromString(innerHTML, "text/html")
|
const html = p.parseFromString(el.innerHTML, "text/html")
|
||||||
|
|
||||||
const createHighlightSpan = (text: string) => {
|
const createHighlightSpan = (text: string) => {
|
||||||
const span = document.createElement("span")
|
const span = document.createElement("span")
|
||||||
@ -389,7 +389,7 @@ document.addEventListener("nav", async (e: CustomEventMap["nav"]) => {
|
|||||||
previewInner = document.createElement("div")
|
previewInner = document.createElement("div")
|
||||||
previewInner.classList.add("preview-inner")
|
previewInner.classList.add("preview-inner")
|
||||||
const innerDiv = await fetchContent(slug).then((contents) =>
|
const innerDiv = await fetchContent(slug).then((contents) =>
|
||||||
contents.map((el) => highlightHTML(currentSearchTerm, el.innerHTML)),
|
contents.flatMap((el) => [...highlightHTML(currentSearchTerm, el as HTMLElement).children]),
|
||||||
)
|
)
|
||||||
previewInner.append(...innerDiv)
|
previewInner.append(...innerDiv)
|
||||||
preview.replaceChildren(previewInner)
|
preview.replaceChildren(previewInner)
|
||||||
|
Loading…
Reference in New Issue
Block a user