@seqera/docusaurus-preset-seqera 1.0.25 → 1.0.26
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/index.js +38 -1
- package/lib/options.d.ts +3 -1
- package/package.json +2 -2
- package/src/index.ts +44 -1
- package/src/options.ts +3 -1
package/lib/index.js
CHANGED
|
@@ -30,8 +30,11 @@ function preset(context, opts = {}) {
|
|
|
30
30
|
if (algolia) {
|
|
31
31
|
themes.push(require.resolve('@docusaurus/theme-search-algolia'));
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
// docusaurus-theme-search-typesense must be registered before @seqera/docusaurus-theme-seqera
|
|
34
|
+
// so that theme-seqera (last = highest precedence) can shadow SearchPage while
|
|
35
|
+
// @theme-original/SearchBar still resolves to the real typesense SearchBar.
|
|
34
36
|
themes.push(makePluginConfig('docusaurus-theme-search-typesense', theme));
|
|
37
|
+
themes.push(makePluginConfig('@seqera/docusaurus-theme-seqera', theme));
|
|
35
38
|
if ('gtag' in themeConfig) {
|
|
36
39
|
throw new Error('The "gtag" field in themeConfig should now be specified as option for plugin-google-gtag. For preset-classic, simply move themeConfig.gtag to preset options. More information at https://github.com/facebook/docusaurus/pull/5832.');
|
|
37
40
|
}
|
|
@@ -114,6 +117,18 @@ function getSeqeraThemeConfig(overrides = {}) {
|
|
|
114
117
|
},
|
|
115
118
|
contextualSearch: true,
|
|
116
119
|
placeholder: 'Search Seqera docs...',
|
|
120
|
+
// Search page product drop down search selectors
|
|
121
|
+
productRoutes: [
|
|
122
|
+
['/platform-enterprise/', 'Platform Enterprise', 'platform-enterprise', null],
|
|
123
|
+
['/platform-cloud/', 'Platform Cloud', 'platform-cloud', null],
|
|
124
|
+
['/platform-cli/', 'Platform CLI', 'platform-cli', null],
|
|
125
|
+
['/platform-api/', 'Platform API', 'platform-api', null],
|
|
126
|
+
['/nextflow/', 'Nextflow', null, 'docs-default-current'],
|
|
127
|
+
['/multiqc/', 'MultiQC', 'multiqc', null],
|
|
128
|
+
['/wave/', 'Wave', 'wave', null],
|
|
129
|
+
['/fusion/', 'Fusion', 'fusion', null],
|
|
130
|
+
['/changelog/', 'Changelog', null, null],
|
|
131
|
+
],
|
|
117
132
|
},
|
|
118
133
|
navbar: {
|
|
119
134
|
title: 'Seqera',
|
|
@@ -288,6 +303,28 @@ function getSeqeraThemeConfig(overrides = {}) {
|
|
|
288
303
|
mergedConfig.footer.links = baseConfig.footer.links;
|
|
289
304
|
}
|
|
290
305
|
}
|
|
306
|
+
// Merge typesense — deep merge so productRoutes and other base defaults are
|
|
307
|
+
// preserved when the consuming repo only overrides a subset of keys.
|
|
308
|
+
if (overrides.typesense || baseConfig.typesense) {
|
|
309
|
+
mergedConfig.typesense = {
|
|
310
|
+
...baseConfig.typesense,
|
|
311
|
+
...overrides.typesense,
|
|
312
|
+
};
|
|
313
|
+
if (overrides.typesense?.typesenseSearchParameters ||
|
|
314
|
+
baseConfig.typesense?.typesenseSearchParameters) {
|
|
315
|
+
mergedConfig.typesense.typesenseSearchParameters = {
|
|
316
|
+
...baseConfig.typesense?.typesenseSearchParameters,
|
|
317
|
+
...overrides.typesense?.typesenseSearchParameters,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
if (overrides.typesense?.typesenseServerConfig ||
|
|
321
|
+
baseConfig.typesense?.typesenseServerConfig) {
|
|
322
|
+
mergedConfig.typesense.typesenseServerConfig = {
|
|
323
|
+
...baseConfig.typesense?.typesenseServerConfig,
|
|
324
|
+
...overrides.typesense?.typesenseServerConfig,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
}
|
|
291
328
|
// Merge prism
|
|
292
329
|
if (overrides.prism || baseConfig.prism) {
|
|
293
330
|
mergedConfig.prism = {
|
package/lib/options.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { Options as SVGRPluginOptions } from '@docusaurus/plugin-svgr';
|
|
|
6
6
|
import type { Options as GAPluginOptions } from '@docusaurus/plugin-google-analytics';
|
|
7
7
|
import type { Options as GtagPluginOptions } from '@docusaurus/plugin-google-gtag';
|
|
8
8
|
import type { Options as GTMPluginOptions } from '@docusaurus/plugin-google-tag-manager';
|
|
9
|
-
import type { Options as ThemeOptions } from '@seqera/docusaurus-theme-seqera';
|
|
9
|
+
import type { Options as ThemeOptions, ProductRoute } from '@seqera/docusaurus-theme-seqera';
|
|
10
10
|
import type { UserThemeConfig as BaseThemeConfig } from "@seqera/docusaurus-theme-seqera";
|
|
11
11
|
export type OpenAPIPluginOptions = {
|
|
12
12
|
id?: string;
|
|
@@ -84,5 +84,7 @@ export type ThemeConfig = BaseThemeConfig & {
|
|
|
84
84
|
typesenseSearchParameters?: Record<string, any>;
|
|
85
85
|
contextualSearch?: boolean;
|
|
86
86
|
placeholder?: string;
|
|
87
|
+
/** Product routes for the search page filter dropdown. */
|
|
88
|
+
productRoutes?: ProductRoute[];
|
|
87
89
|
};
|
|
88
90
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seqera/docusaurus-preset-seqera",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.26",
|
|
4
4
|
"description": "Docusaurus preset for Seqera docs",
|
|
5
5
|
"author": "Seqera docs team <education@seqera.io>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@docusaurus/theme-common": "3.9.2",
|
|
31
31
|
"@docusaurus/theme-search-algolia": "3.9.2",
|
|
32
32
|
"@docusaurus/types": "3.9.2",
|
|
33
|
-
"@seqera/docusaurus-theme-seqera": "1.0.
|
|
33
|
+
"@seqera/docusaurus-theme-seqera": "1.0.26",
|
|
34
34
|
"@tailwindcss/oxide": "^4.1.17",
|
|
35
35
|
"docusaurus-plugin-llms": "^0.3.0",
|
|
36
36
|
"docusaurus-plugin-openapi-docs": "^4.5.1",
|
package/src/index.ts
CHANGED
|
@@ -54,8 +54,11 @@ export default function preset(
|
|
|
54
54
|
if (algolia) {
|
|
55
55
|
themes.push(require.resolve('@docusaurus/theme-search-algolia'));
|
|
56
56
|
}
|
|
57
|
-
|
|
57
|
+
// docusaurus-theme-search-typesense must be registered before @seqera/docusaurus-theme-seqera
|
|
58
|
+
// so that theme-seqera (last = highest precedence) can shadow SearchPage while
|
|
59
|
+
// @theme-original/SearchBar still resolves to the real typesense SearchBar.
|
|
58
60
|
themes.push(makePluginConfig('docusaurus-theme-search-typesense', theme));
|
|
61
|
+
themes.push(makePluginConfig('@seqera/docusaurus-theme-seqera', theme));
|
|
59
62
|
|
|
60
63
|
if ('gtag' in themeConfig) {
|
|
61
64
|
throw new Error(
|
|
@@ -165,6 +168,19 @@ export function getSeqeraThemeConfig(
|
|
|
165
168
|
|
|
166
169
|
contextualSearch: true,
|
|
167
170
|
placeholder: 'Search Seqera docs...',
|
|
171
|
+
|
|
172
|
+
// Search page product drop down search selectors
|
|
173
|
+
productRoutes: [
|
|
174
|
+
['/platform-enterprise/', 'Platform Enterprise', 'platform-enterprise', null],
|
|
175
|
+
['/platform-cloud/', 'Platform Cloud', 'platform-cloud', null],
|
|
176
|
+
['/platform-cli/', 'Platform CLI', 'platform-cli', null],
|
|
177
|
+
['/platform-api/', 'Platform API', 'platform-api', null],
|
|
178
|
+
['/nextflow/', 'Nextflow', null, 'docs-default-current'],
|
|
179
|
+
['/multiqc/', 'MultiQC', 'multiqc', null],
|
|
180
|
+
['/wave/', 'Wave', 'wave', null],
|
|
181
|
+
['/fusion/', 'Fusion', 'fusion', null],
|
|
182
|
+
['/changelog/', 'Changelog', null, null],
|
|
183
|
+
],
|
|
168
184
|
},
|
|
169
185
|
navbar: {
|
|
170
186
|
title: 'Seqera',
|
|
@@ -341,6 +357,33 @@ export function getSeqeraThemeConfig(
|
|
|
341
357
|
}
|
|
342
358
|
}
|
|
343
359
|
|
|
360
|
+
// Merge typesense — deep merge so productRoutes and other base defaults are
|
|
361
|
+
// preserved when the consuming repo only overrides a subset of keys.
|
|
362
|
+
if (overrides.typesense || baseConfig.typesense) {
|
|
363
|
+
mergedConfig.typesense = {
|
|
364
|
+
...baseConfig.typesense,
|
|
365
|
+
...overrides.typesense,
|
|
366
|
+
};
|
|
367
|
+
if (
|
|
368
|
+
overrides.typesense?.typesenseSearchParameters ||
|
|
369
|
+
baseConfig.typesense?.typesenseSearchParameters
|
|
370
|
+
) {
|
|
371
|
+
mergedConfig.typesense.typesenseSearchParameters = {
|
|
372
|
+
...baseConfig.typesense?.typesenseSearchParameters,
|
|
373
|
+
...overrides.typesense?.typesenseSearchParameters,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
if (
|
|
377
|
+
overrides.typesense?.typesenseServerConfig ||
|
|
378
|
+
baseConfig.typesense?.typesenseServerConfig
|
|
379
|
+
) {
|
|
380
|
+
mergedConfig.typesense.typesenseServerConfig = {
|
|
381
|
+
...baseConfig.typesense?.typesenseServerConfig,
|
|
382
|
+
...overrides.typesense?.typesenseServerConfig,
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
344
387
|
// Merge prism
|
|
345
388
|
if (overrides.prism || baseConfig.prism) {
|
|
346
389
|
mergedConfig.prism = {
|
package/src/options.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type {Options as SVGRPluginOptions} from '@docusaurus/plugin-svgr';
|
|
|
8
8
|
import type {Options as GAPluginOptions} from '@docusaurus/plugin-google-analytics';
|
|
9
9
|
import type {Options as GtagPluginOptions} from '@docusaurus/plugin-google-gtag';
|
|
10
10
|
import type {Options as GTMPluginOptions} from '@docusaurus/plugin-google-tag-manager';
|
|
11
|
-
import type {Options as ThemeOptions} from '@seqera/docusaurus-theme-seqera';
|
|
11
|
+
import type {Options as ThemeOptions, ProductRoute} from '@seqera/docusaurus-theme-seqera';
|
|
12
12
|
// import type {ThemeConfig as BaseThemeConfig} from '@docusaurus/types';
|
|
13
13
|
import type {UserThemeConfig as ClassicThemeConfig} from '@docusaurus/theme-common';
|
|
14
14
|
import type { UserThemeConfig as BaseThemeConfig } from "@seqera/docusaurus-theme-seqera";
|
|
@@ -95,5 +95,7 @@ export type ThemeConfig = BaseThemeConfig & {
|
|
|
95
95
|
typesenseSearchParameters?: Record<string, any>;
|
|
96
96
|
contextualSearch?: boolean;
|
|
97
97
|
placeholder?: string;
|
|
98
|
+
/** Product routes for the search page filter dropdown. */
|
|
99
|
+
productRoutes?: ProductRoute[];
|
|
98
100
|
};
|
|
99
101
|
};
|