The Trans Directory
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: be more eager about constructing search index

+23 -26
+23 -26
quartz/components/scripts/search.inline.ts
··· 15 15 type SearchType = "basic" | "tags" 16 16 let searchType: SearchType = "basic" 17 17 let currentSearchTerm: string = "" 18 - let index: FlexSearch.Document<Item> | undefined = undefined 19 - const p = new DOMParser() 20 18 const encoder = (str: string) => str.toLowerCase().split(/([^a-z]|[^\x00-\x7F])/) 19 + let index = new FlexSearch.Document<Item>({ 20 + charset: "latin:extra", 21 + encode: encoder, 22 + document: { 23 + id: "id", 24 + index: [ 25 + { 26 + field: "title", 27 + tokenize: "forward", 28 + }, 29 + { 30 + field: "content", 31 + tokenize: "forward", 32 + }, 33 + { 34 + field: "tags", 35 + tokenize: "forward", 36 + }, 37 + ], 38 + }, 39 + }) 21 40 41 + const p = new DOMParser() 22 42 const fetchContentCache: Map<FullSlug, Element[]> = new Map() 23 43 const contextWindowWords = 30 24 44 const numSearchResults = 8 ··· 444 464 searchBar?.addEventListener("input", onType) 445 465 window.addCleanup(() => searchBar?.removeEventListener("input", onType)) 446 466 447 - index ??= await fillDocument(data) 467 + await fillDocument(data) 448 468 registerEscapeHandler(container, hideSearch) 449 469 }) 450 470 ··· 454 474 * @param data data to fill index with 455 475 */ 456 476 async function fillDocument(data: { [key: FullSlug]: ContentDetails }) { 457 - const index = new FlexSearch.Document<Item>({ 458 - charset: "latin:extra", 459 - encode: encoder, 460 - document: { 461 - id: "id", 462 - index: [ 463 - { 464 - field: "title", 465 - tokenize: "forward", 466 - }, 467 - { 468 - field: "content", 469 - tokenize: "forward", 470 - }, 471 - { 472 - field: "tags", 473 - tokenize: "forward", 474 - }, 475 - ], 476 - }, 477 - }) 478 477 let id = 0 479 478 for (const [slug, fileData] of Object.entries<ContentDetails>(data)) { 480 479 await index.addAsync(id++, { ··· 485 484 tags: fileData.tags, 486 485 }) 487 486 } 488 - 489 - return index 490 487 }