| | |
| | | }) |
| | | .join(" ") |
| | | |
| | | return `${startIndex === 0 ? "" : "..."}${slice}${endIndex === tokenizedText.length - 1 ? "" : "..." |
| | | }` |
| | | return `${startIndex === 0 ? "" : "..."}${slice}${ |
| | | endIndex === tokenizedText.length - 1 ? "" : "..." |
| | | }` |
| | | } |
| | | |
| | | function highlightHTML(searchTerm: string, innerHTML: string) { |
| | |
| | | return [] |
| | | } |
| | | |
| | | return tags.map(tag => { |
| | | if (tag.toLowerCase().includes(term.toLowerCase())) { |
| | | return `<li><p class="match-tag">#${tag}</p></li>` |
| | | } else { |
| | | return `<li><p>#${tag}</p></li>` |
| | | } |
| | | }).slice(0, numTagResults) |
| | | return tags |
| | | .map((tag) => { |
| | | if (tag.toLowerCase().includes(term.toLowerCase())) { |
| | | return `<li><p class="match-tag">#${tag}</p></li>` |
| | | } else { |
| | | return `<li><p>#${tag}</p></li>` |
| | | } |
| | | }) |
| | | .slice(0, numTagResults) |
| | | } |
| | | |
| | | function resolveUrl(slug: FullSlug): URL { |
| | |
| | | |
| | | async function onMouseEnter(ev: MouseEvent) { |
| | | if (!ev.target) return |
| | | currentHover?.classList.remove('focus') |
| | | currentHover?.classList.remove("focus") |
| | | currentHover?.blur() |
| | | const target = ev.target as HTMLInputElement |
| | | await displayPreview(target) |
| | |
| | | preview.replaceChildren(previewInner) |
| | | |
| | | // scroll to longest |
| | | const highlights = [...preview.querySelectorAll(".highlight")].sort((a, b) => b.innerHTML.length - a.innerHTML.length) |
| | | const highlights = [...preview.querySelectorAll(".highlight")].sort( |
| | | (a, b) => b.innerHTML.length - a.innerHTML.length, |
| | | ) |
| | | highlights[0]?.scrollIntoView() |
| | | } |
| | | |