diff --git a/src/client/theme-default/Layout.vue b/src/client/theme-default/Layout.vue index 5eacf80e..5058651e 100644 --- a/src/client/theme-default/Layout.vue +++ b/src/client/theme-default/Layout.vue @@ -3,7 +3,12 @@ diff --git a/src/client/theme-default/components/AlgoliaSearchBox.vue b/src/client/theme-default/components/AlgoliaSearchBox.vue index 70f375d3..02cef480 100644 --- a/src/client/theme-default/components/AlgoliaSearchBox.vue +++ b/src/client/theme-default/components/AlgoliaSearchBox.vue @@ -14,7 +14,8 @@ import { useSiteDataByRoute } from 'vitepress' const siteData = useSiteDataByRoute() const props = defineProps<{ - options: DefaultTheme.AlgoliaSearchOptions + options: DefaultTheme.AlgoliaSearchOptions, + multilang?: boolean }>() const vm = getCurrentInstance() @@ -57,6 +58,10 @@ function update(options: any) { } function initialize(userOptions: any) { + // if the user has multiple locales, the search results should be filtered + // based on the language + const facetFilters = props.multilang ? ['language:' + siteData.value.lang] : [] + docsearch( Object.assign({}, userOptions, { container: '#docsearch', @@ -64,7 +69,7 @@ function initialize(userOptions: any) { searchParameters: Object.assign({}, userOptions.searchParameters, { // pass a custom lang facetFilter to allow multiple language search // https://github.com/algolia/docsearch-configs/pull/3942 - facetFilters: ['language:' + siteData.value.lang].concat( + facetFilters: facetFilters.concat( userOptions.facetFilters || [] ) }),