From e11d0f7a9d86f08e64cc4f4f370eb949449dbd0c Mon Sep 17 00:00:00 2001 From: sugar Date: Sun, 21 Jul 2024 15:23:49 +0800 Subject: [PATCH] chore: search sort by location --- packages/theme/CHANGELOG.md | 2 +- packages/theme/docs/.vitepress/blog-theme.ts | 3 +++ packages/vitepress-plugin-pagefind/CHANGELOG.md | 6 ++++++ packages/vitepress-plugin-pagefind/package.json | 2 +- packages/vitepress-plugin-pagefind/src/search.ts | 15 ++++++++++++--- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/packages/theme/CHANGELOG.md b/packages/theme/CHANGELOG.md index 1f86c494..2afe479b 100644 --- a/packages/theme/CHANGELOG.md +++ b/packages/theme/CHANGELOG.md @@ -7,7 +7,7 @@ - chore: support rewrite version text - chore: sass warning - Updated dependencies - - vitepress-plugin-pagefind@0.4.8 + - vitepress-plugin-pagefind@0.4.9 - vitepress@1.3.1 ## 0.4.7 diff --git a/packages/theme/docs/.vitepress/blog-theme.ts b/packages/theme/docs/.vitepress/blog-theme.ts index 763abaec..64a349bf 100644 --- a/packages/theme/docs/.vitepress/blog-theme.ts +++ b/packages/theme/docs/.vitepress/blog-theme.ts @@ -12,6 +12,9 @@ const RSS: Theme.RSSOptions = { } export const blogTheme = getThemeConfig({ + search: { + pageResultCount: 5 + }, // 图表支持 mermaid: true, imageStyle: { diff --git a/packages/vitepress-plugin-pagefind/CHANGELOG.md b/packages/vitepress-plugin-pagefind/CHANGELOG.md index 29adcb4e..73f51bc3 100644 --- a/packages/vitepress-plugin-pagefind/CHANGELOG.md +++ b/packages/vitepress-plugin-pagefind/CHANGELOG.md @@ -1,5 +1,11 @@ # vitepress-plugin-pagefind +## 0.4.9 + +### Patch Changes + +- chore: search sort by location + ## 0.4.8 ### Patch Changes diff --git a/packages/vitepress-plugin-pagefind/package.json b/packages/vitepress-plugin-pagefind/package.json index 53064bf3..4835f810 100644 --- a/packages/vitepress-plugin-pagefind/package.json +++ b/packages/vitepress-plugin-pagefind/package.json @@ -1,6 +1,6 @@ { "name": "vitepress-plugin-pagefind", - "version": "0.4.8", + "version": "0.4.9", "description": "vitepress plugin, Offline full-text search based on pagefind implementation.", "author": "sugar", "license": "MIT", diff --git a/packages/vitepress-plugin-pagefind/src/search.ts b/packages/vitepress-plugin-pagefind/src/search.ts index ef80dcbc..432c31ad 100644 --- a/packages/vitepress-plugin-pagefind/src/search.ts +++ b/packages/vitepress-plugin-pagefind/src/search.ts @@ -63,12 +63,11 @@ export function formatPagefindResult(result: PagefindResult, count = 1) { const { sub_results: subResults, anchors, weighted_locations: weightedLocations } = result // TODO:pick策略优化 - // 按照权重排序,从大到小 weightedLocations.sort((a, b) => { - // 权重相等按照 location 排序 + // 权重相等按照 location 顺序排序 if (b.weight === a.weight) { - return b.location - a.location + return a.location - b.location } return b.weight - a.weight }) @@ -106,6 +105,16 @@ export function formatPagefindResult(result: PagefindResult, count = 1) { } } + // 按文章中顺序,排序 + subs.sort((a, b) => { + const [minA] = a.locations || [] + const [minB] = b.locations || [] + if (!minA || !minB) { + return 0 + } + return minA - minB + }) + const filterMap = new Map() return subs.map(sub => parseSubResult(sub, anchors, result)) .filter((v) => {