diff --git a/src/components/navigation/Search.astro b/src/components/navigation/Search.astro index db2153e..8c04fdd 100644 --- a/src/components/navigation/Search.astro +++ b/src/components/navigation/Search.astro @@ -11,7 +11,7 @@ import magnifierIcon from "@icons/magnifier.svg?raw"; aria-keyshortcuts="Control+K" class="search-button" > - + CtrlK @@ -129,28 +129,35 @@ import magnifierIcon from "@icons/magnifier.svg?raw"; const onIdle = window.requestIdleCallback || (cb => setTimeout(cb, 1)); onIdle(async () => { const { PagefindUI } = await import( - //@ts-expect-error — Missing types for @pagefind/default-ui package. + //Missing types for @pagefind/default-ui package. + //@ts-expect-error "@pagefind/default-ui" ); new PagefindUI({ element: "#qs_search", + // resetStyles: false, + sort: { version: "desc" }, baseUrl: import.meta.env.BASE_URL, bundlePath: import.meta.env.BASE_URL.replace(/\/$/, "") + "/pagefind/", showImages: false, showSubResults: true, - processResult: (result: { + highlightParam: "highlight", + openFilters: ["Tags"], + processResult: function (result: { url: string; excerpt: string; meta: { source: string; + title: string; + version: string; }; extra_class: string; sub_results: Array<{ url: string; excerpt: string; }>; - }) => { + }) { if (result.meta.source === "Qt Framework") { result.extra_class = "qt-result-badge"; } diff --git a/src/config/io/search.ts b/src/config/io/search.ts new file mode 100644 index 0000000..0027153 --- /dev/null +++ b/src/config/io/search.ts @@ -0,0 +1,13 @@ +function getSearchWeight(version: string) { + const versionArr = version.split("."); + versionArr[0] = versionArr[0].substring(1); + const searchWeightArr = versionArr.map(w => parseInt(w)); + const weight = searchWeightArr.reduce((p, c, i, _) => { + const mult = i - 1 === 0 || i === 0 ? 10 : 1; + const acc = p * mult + c * mult; + return acc; + }); + return weight; +} + +export { getSearchWeight }; diff --git a/src/pages/docs/[version]/types/[module]/[type].astro b/src/pages/docs/[version]/types/[module]/[type].astro index c13cf9b..fee5249 100644 --- a/src/pages/docs/[version]/types/[module]/[type].astro +++ b/src/pages/docs/[version]/types/[module]/[type].astro @@ -1,5 +1,6 @@ --- import { getQMLTypeLink } from "@config/io/helpers"; +import { getSearchWeight } from "@config/io/search"; import { processMarkdown } from "@config/io/markdown"; import { getVersionsData } from "@config/io/generateTypeData"; import DocsLayout from "@layouts/DocsLayout.astro"; @@ -41,6 +42,9 @@ const superLink = type.super ? getQMLTypeLink(version.name, type.super) : null; const details = type.details ? await processMarkdown(version.name, type.details) : null; + +const searchWeight = + version.name != "master" ? getSearchWeight(version.name) : 999.0; --- -