@docusaurus/theme-search-algolia 3.4.0 → 3.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client/useAlgoliaContextualFacetFilters.js +11 -3
- package/lib/client/useAlgoliaThemeConfig.d.ts +0 -1
- package/lib/index.js +1 -1
- package/lib/opensearch.js +3 -4
- package/lib/theme/SearchBar/index.d.ts +0 -1
- package/lib/theme/SearchBar/index.js +4 -0
- package/lib/theme/SearchPage/index.d.ts +0 -1
- package/lib/theme/SearchPage/index.js +2 -0
- package/lib/validateThemeConfig.js +2 -2
- package/package.json +10 -10
- package/src/client/useAlgoliaContextualFacetFilters.ts +12 -3
- package/src/theme/SearchBar/index.tsx +4 -0
- package/src/theme/SearchPage/index.tsx +2 -0
|
@@ -4,10 +4,18 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
8
|
-
|
|
7
|
+
import { DEFAULT_SEARCH_TAG } from '@docusaurus/theme-common/internal';
|
|
8
|
+
import { useDocsContextualSearchTags } from '@docusaurus/plugin-content-docs/client';
|
|
9
|
+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
10
|
+
function useSearchTags() {
|
|
11
|
+
// only docs have custom search tags per version
|
|
12
|
+
const docsTags = useDocsContextualSearchTags();
|
|
13
|
+
return [DEFAULT_SEARCH_TAG, ...docsTags];
|
|
14
|
+
}
|
|
15
|
+
// Translate search-engine agnostic search tags to Algolia search filters
|
|
9
16
|
export function useAlgoliaContextualFacetFilters() {
|
|
10
|
-
const
|
|
17
|
+
const locale = useDocusaurusContext().i18n.currentLocale;
|
|
18
|
+
const tags = useSearchTags();
|
|
11
19
|
// Seems safe to convert locale->language, see AlgoliaSearchMetadata comment
|
|
12
20
|
const languageFilter = `language:${locale}`;
|
|
13
21
|
const tagsFilter = tags.map((tag) => `docusaurus_tag:${tag}`);
|
package/lib/index.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.validateThemeConfig = void 0;
|
|
10
|
+
exports.default = themeSearchAlgolia;
|
|
10
11
|
const utils_1 = require("@docusaurus/utils");
|
|
11
12
|
const theme_translations_1 = require("@docusaurus/theme-translations");
|
|
12
13
|
const opensearch_1 = require("./opensearch");
|
|
@@ -49,6 +50,5 @@ function themeSearchAlgolia(context) {
|
|
|
49
50
|
},
|
|
50
51
|
};
|
|
51
52
|
}
|
|
52
|
-
exports.default = themeSearchAlgolia;
|
|
53
53
|
var validateThemeConfig_1 = require("./validateThemeConfig");
|
|
54
54
|
Object.defineProperty(exports, "validateThemeConfig", { enumerable: true, get: function () { return validateThemeConfig_1.validateThemeConfig; } });
|
package/lib/opensearch.js
CHANGED
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.shouldCreateOpenSearchFile = shouldCreateOpenSearchFile;
|
|
10
|
+
exports.createOpenSearchFile = createOpenSearchFile;
|
|
11
|
+
exports.createOpenSearchHeadTags = createOpenSearchHeadTags;
|
|
10
12
|
const tslib_1 = require("tslib");
|
|
11
13
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
12
14
|
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
@@ -25,7 +27,6 @@ function shouldCreateOpenSearchFile({ context, }) {
|
|
|
25
27
|
const { algolia: { searchPagePath }, } = themeConfig;
|
|
26
28
|
return !!searchPagePath && router !== 'hash';
|
|
27
29
|
}
|
|
28
|
-
exports.shouldCreateOpenSearchFile = shouldCreateOpenSearchFile;
|
|
29
30
|
function createOpenSearchFileContent({ context, searchPagePath, }) {
|
|
30
31
|
const { baseUrl, siteConfig: { title, url, favicon }, } = context;
|
|
31
32
|
const siteUrl = (0, utils_1.normalizeUrl)([url, baseUrl]);
|
|
@@ -50,7 +51,6 @@ async function createOpenSearchFile({ context, }) {
|
|
|
50
51
|
throw new Error('Generating OpenSearch file failed.', { cause: err });
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
exports.createOpenSearchFile = createOpenSearchFile;
|
|
54
54
|
function createOpenSearchHeadTags({ context, }) {
|
|
55
55
|
const { baseUrl, siteConfig: { title }, } = context;
|
|
56
56
|
return {
|
|
@@ -63,4 +63,3 @@ function createOpenSearchHeadTags({ context, }) {
|
|
|
63
63
|
},
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
|
-
exports.createOpenSearchHeadTags = createOpenSearchHeadTags;
|
|
@@ -90,6 +90,10 @@ function DocSearch({contextualSearch, externalUrlRegex, ...props}) {
|
|
|
90
90
|
}, []);
|
|
91
91
|
const handleInput = useCallback(
|
|
92
92
|
(event) => {
|
|
93
|
+
if (event.key === 'f' && (event.metaKey || event.ctrlKey)) {
|
|
94
|
+
// ignore browser's ctrl+f
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
93
97
|
// prevents duplicate key insertion in the modal input
|
|
94
98
|
event.preventDefault();
|
|
95
99
|
setInitialQuery(event.key);
|
|
@@ -175,6 +175,8 @@ function SearchPageContent() {
|
|
|
175
175
|
: [];
|
|
176
176
|
const algoliaClient = algoliaSearch(appId, apiKey);
|
|
177
177
|
const algoliaHelper = algoliaSearchHelper(algoliaClient, indexName, {
|
|
178
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
179
|
+
// @ts-ignore: why errors happens after upgrading to TS 5.5 ?
|
|
178
180
|
hitsPerPage: 15,
|
|
179
181
|
advancedSyntax: true,
|
|
180
182
|
disjunctiveFacets,
|
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.Schema = exports.DEFAULT_CONFIG = void 0;
|
|
10
|
+
exports.validateThemeConfig = validateThemeConfig;
|
|
10
11
|
const utils_1 = require("@docusaurus/utils");
|
|
11
12
|
const utils_validation_1 = require("@docusaurus/utils-validation");
|
|
12
13
|
exports.DEFAULT_CONFIG = {
|
|
@@ -54,4 +55,3 @@ exports.Schema = utils_validation_1.Joi.object({
|
|
|
54
55
|
function validateThemeConfig({ validate, themeConfig, }) {
|
|
55
56
|
return validate(exports.Schema, themeConfig);
|
|
56
57
|
}
|
|
57
|
-
exports.validateThemeConfig = validateThemeConfig;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-search-algolia",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "Algolia search component for Docusaurus.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"sideEffects": [
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@docsearch/react": "^3.5.2",
|
|
37
|
-
"@docusaurus/core": "3.
|
|
38
|
-
"@docusaurus/logger": "3.
|
|
39
|
-
"@docusaurus/plugin-content-docs": "3.
|
|
40
|
-
"@docusaurus/theme-common": "3.
|
|
41
|
-
"@docusaurus/theme-translations": "3.
|
|
42
|
-
"@docusaurus/utils": "3.
|
|
43
|
-
"@docusaurus/utils-validation": "3.
|
|
37
|
+
"@docusaurus/core": "3.5.1",
|
|
38
|
+
"@docusaurus/logger": "3.5.1",
|
|
39
|
+
"@docusaurus/plugin-content-docs": "3.5.1",
|
|
40
|
+
"@docusaurus/theme-common": "3.5.1",
|
|
41
|
+
"@docusaurus/theme-translations": "3.5.1",
|
|
42
|
+
"@docusaurus/utils": "3.5.1",
|
|
43
|
+
"@docusaurus/utils-validation": "3.5.1",
|
|
44
44
|
"algoliasearch": "^4.18.0",
|
|
45
45
|
"algoliasearch-helper": "^3.13.3",
|
|
46
46
|
"clsx": "^2.0.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"utility-types": "^3.10.0"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@docusaurus/module-type-aliases": "3.
|
|
54
|
+
"@docusaurus/module-type-aliases": "3.5.1"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"react": "^18.0.0",
|
|
@@ -60,5 +60,5 @@
|
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=18.0"
|
|
62
62
|
},
|
|
63
|
-
"gitHead": "
|
|
63
|
+
"gitHead": "5acbc57bd62f3f808ef72007cd67d4c410d13829"
|
|
64
64
|
}
|
|
@@ -5,11 +5,20 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import {
|
|
8
|
+
import {DEFAULT_SEARCH_TAG} from '@docusaurus/theme-common/internal';
|
|
9
|
+
import {useDocsContextualSearchTags} from '@docusaurus/plugin-content-docs/client';
|
|
10
|
+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
function useSearchTags() {
|
|
13
|
+
// only docs have custom search tags per version
|
|
14
|
+
const docsTags = useDocsContextualSearchTags();
|
|
15
|
+
return [DEFAULT_SEARCH_TAG, ...docsTags];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Translate search-engine agnostic search tags to Algolia search filters
|
|
11
19
|
export function useAlgoliaContextualFacetFilters(): [string, string[]] {
|
|
12
|
-
const
|
|
20
|
+
const locale = useDocusaurusContext().i18n.currentLocale;
|
|
21
|
+
const tags = useSearchTags();
|
|
13
22
|
|
|
14
23
|
// Seems safe to convert locale->language, see AlgoliaSearchMetadata comment
|
|
15
24
|
const languageFilter = `language:${locale}`;
|
|
@@ -156,6 +156,10 @@ function DocSearch({
|
|
|
156
156
|
|
|
157
157
|
const handleInput = useCallback(
|
|
158
158
|
(event: KeyboardEvent) => {
|
|
159
|
+
if (event.key === 'f' && (event.metaKey || event.ctrlKey)) {
|
|
160
|
+
// ignore browser's ctrl+f
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
159
163
|
// prevents duplicate key insertion in the modal input
|
|
160
164
|
event.preventDefault();
|
|
161
165
|
setInitialQuery(event.key);
|
|
@@ -221,6 +221,8 @@ function SearchPageContent(): JSX.Element {
|
|
|
221
221
|
|
|
222
222
|
const algoliaClient = algoliaSearch(appId, apiKey);
|
|
223
223
|
const algoliaHelper = algoliaSearchHelper(algoliaClient, indexName, {
|
|
224
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
225
|
+
// @ts-ignore: why errors happens after upgrading to TS 5.5 ?
|
|
224
226
|
hitsPerPage: 15,
|
|
225
227
|
advancedSyntax: true,
|
|
226
228
|
disjunctiveFacets,
|