@docusaurus/plugin-content-docs 2.0.0-beta.1ec2c95e3 → 2.0.0-beta.21
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/categoryGeneratedIndex.d.ts +12 -0
- package/lib/categoryGeneratedIndex.js +37 -0
- package/lib/cli.d.ts +3 -2
- package/lib/cli.js +58 -72
- package/lib/client/docsClientUtils.d.ts +9 -28
- package/lib/client/docsClientUtils.js +34 -43
- package/lib/client/index.d.ts +22 -0
- package/lib/client/index.js +59 -0
- package/lib/constants.d.ts +4 -0
- package/lib/constants.js +4 -1
- package/lib/docs.d.ts +32 -3
- package/lib/docs.js +164 -63
- package/{src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docusaurus.config.js → lib/frontMatter.d.ts} +4 -8
- package/lib/{docFrontMatter.js → frontMatter.js} +12 -3
- package/lib/globalData.d.ts +3 -3
- package/lib/globalData.js +35 -6
- package/lib/index.d.ts +3 -3
- package/lib/index.js +123 -149
- package/lib/lastUpdate.d.ts +4 -6
- package/lib/lastUpdate.js +22 -26
- package/lib/markdown/index.d.ts +3 -6
- package/lib/markdown/index.js +3 -3
- package/lib/markdown/linkify.d.ts +1 -1
- package/lib/markdown/linkify.js +6 -3
- package/lib/numberPrefix.d.ts +1 -1
- package/lib/numberPrefix.js +16 -21
- package/lib/options.d.ts +3 -5
- package/lib/options.js +54 -13
- package/lib/props.d.ts +7 -2
- package/lib/props.js +70 -14
- package/lib/routes.d.ts +29 -0
- package/lib/routes.js +96 -0
- package/lib/server-export.d.ts +9 -0
- package/lib/server-export.js +22 -0
- package/lib/{sidebarItemsGenerator.d.ts → sidebars/generator.d.ts} +1 -6
- package/lib/sidebars/generator.js +209 -0
- package/lib/sidebars/index.d.ts +13 -0
- package/lib/sidebars/index.js +92 -0
- package/lib/sidebars/normalization.d.ts +13 -0
- package/lib/sidebars/normalization.js +55 -0
- package/lib/sidebars/postProcessor.d.ts +11 -0
- package/lib/sidebars/postProcessor.js +81 -0
- package/lib/sidebars/processor.d.ts +10 -0
- package/lib/sidebars/processor.js +79 -0
- package/lib/sidebars/types.d.ts +178 -0
- package/lib/{docFrontMatter.d.ts → sidebars/types.js} +2 -2
- package/lib/sidebars/utils.d.ts +54 -0
- package/lib/sidebars/utils.js +255 -0
- package/lib/sidebars/validation.d.ts +11 -0
- package/lib/sidebars/validation.js +142 -0
- package/lib/slug.d.ts +5 -4
- package/lib/slug.js +28 -18
- package/{src/__tests__/__fixtures__/sidebars/sidebars-first-level-not-category.js → lib/tags.d.ts} +3 -14
- package/lib/tags.js +21 -0
- package/lib/translations.d.ts +3 -3
- package/lib/translations.js +83 -93
- package/lib/types.d.ts +13 -184
- package/lib/versions/files.d.ts +51 -0
- package/lib/versions/files.js +143 -0
- package/lib/versions/index.d.ts +36 -0
- package/lib/versions/index.js +155 -0
- package/lib/versions/validation.d.ts +17 -0
- package/lib/versions/validation.js +71 -0
- package/package.json +34 -29
- package/src/categoryGeneratedIndex.ts +60 -0
- package/src/cli.ts +85 -114
- package/src/client/docsClientUtils.ts +44 -71
- package/src/client/index.ts +106 -0
- package/src/constants.ts +4 -2
- package/{types.d.ts → src/deps.d.ts} +1 -1
- package/src/docs.ts +228 -65
- package/src/{docFrontMatter.ts → frontMatter.ts} +20 -10
- package/src/globalData.ts +57 -7
- package/src/index.ts +179 -216
- package/src/lastUpdate.ts +26 -37
- package/src/markdown/index.ts +10 -16
- package/src/markdown/linkify.ts +7 -4
- package/src/numberPrefix.ts +19 -26
- package/src/options.ts +59 -18
- package/src/plugin-content-docs.d.ts +642 -89
- package/src/props.ts +103 -21
- package/src/routes.ts +159 -0
- package/src/server-export.ts +22 -0
- package/src/sidebars/README.md +10 -0
- package/src/sidebars/generator.ts +292 -0
- package/src/sidebars/index.ts +118 -0
- package/src/sidebars/normalization.ts +85 -0
- package/src/sidebars/postProcessor.ts +112 -0
- package/src/sidebars/processor.ts +123 -0
- package/src/sidebars/types.ts +275 -0
- package/src/sidebars/utils.ts +390 -0
- package/src/sidebars/validation.ts +178 -0
- package/src/slug.ts +41 -22
- package/src/tags.ts +20 -0
- package/src/translations.ts +129 -123
- package/src/types.ts +18 -249
- package/src/versions/files.ts +220 -0
- package/src/versions/index.ts +247 -0
- package/src/versions/validation.ts +115 -0
- package/lib/.tsbuildinfo +0 -1
- package/lib/sidebarItemsGenerator.js +0 -211
- package/lib/sidebars.d.ts +0 -43
- package/lib/sidebars.js +0 -320
- package/lib/theme/hooks/useDocs.d.ts +0 -20
- package/lib/theme/hooks/useDocs.js +0 -75
- package/lib/versions.d.ts +0 -16
- package/lib/versions.js +0 -319
- package/src/__tests__/__fixtures__/bad-id-site/docs/invalid-id.md +0 -5
- package/src/__tests__/__fixtures__/bad-slug-on-doc-home-site/docs/docWithSlug.md +0 -5
- package/src/__tests__/__fixtures__/empty-site/docusaurus.config.js +0 -16
- package/src/__tests__/__fixtures__/empty-site/sidebars.json +0 -1
- package/src/__tests__/__fixtures__/sidebars/sidebars-category-shorthand.js +0 -34
- package/src/__tests__/__fixtures__/sidebars/sidebars-category-wrong-items.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-category-wrong-label.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-category.js +0 -44
- package/src/__tests__/__fixtures__/sidebars/sidebars-collapsed-first-level.json +0 -20
- package/src/__tests__/__fixtures__/sidebars/sidebars-collapsed.json +0 -21
- package/src/__tests__/__fixtures__/sidebars/sidebars-doc-id-not-string.json +0 -10
- package/src/__tests__/__fixtures__/sidebars/sidebars-link-wrong-href.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-link-wrong-label.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-link.json +0 -11
- package/src/__tests__/__fixtures__/sidebars/sidebars-unknown-type.json +0 -14
- package/src/__tests__/__fixtures__/sidebars/sidebars-wrong-field.json +0 -20
- package/src/__tests__/__fixtures__/sidebars/sidebars.json +0 -20
- package/src/__tests__/__fixtures__/simple-site/docs/foo/bar.md +0 -69
- package/src/__tests__/__fixtures__/simple-site/docs/foo/baz.md +0 -70
- package/src/__tests__/__fixtures__/simple-site/docs/headingAsTitle.md +0 -1
- package/src/__tests__/__fixtures__/simple-site/docs/hello.md +0 -53
- package/src/__tests__/__fixtures__/simple-site/docs/ipsum.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/lorem.md +0 -6
- package/src/__tests__/__fixtures__/simple-site/docs/rootAbsoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/rootRelativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/rootResolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/rootTryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/absoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/relativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/resolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docs/slugs/tryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/simple-site/docusaurus.config.js +0 -14
- package/src/__tests__/__fixtures__/simple-site/sidebars.json +0 -23
- package/src/__tests__/__fixtures__/simple-site/wrong-sidebars.json +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/0-getting-started.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/1-installation.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/00_api-overview.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/0 --- Client API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/1 --- Server API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/0. Plugin API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/1. Theme API.md +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/_category_.yml +0 -1
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/03_api-end.md +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/_category_.json +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/0-guide2.5.md +0 -8
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/02-guide2.md +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/_category_.json +0 -3
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/a-guide4.md +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/b-guide5.md +0 -7
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/guide3.md +0 -8
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/z-guide1.md +0 -8
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars.js +0 -23
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars2.js +0 -16
- package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-1.md +0 -7
- package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-2.md +0 -8
- package/src/__tests__/__fixtures__/site-with-doc-label/docusaurus.config.js +0 -14
- package/src/__tests__/__fixtures__/site-with-doc-label/sidebars.json +0 -14
- package/src/__tests__/__fixtures__/versioned-site/community/team.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/community_sidebars.json +0 -3
- package/src/__tests__/__fixtures__/versioned-site/community_versioned_docs/version-1.0.0/team.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/community_versioned_sidebars/version-1.0.0-sidebars.json +0 -3
- package/src/__tests__/__fixtures__/versioned-site/community_versions.json +0 -1
- package/src/__tests__/__fixtures__/versioned-site/docs/foo/bar.md +0 -4
- package/src/__tests__/__fixtures__/versioned-site/docs/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/absoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/relativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/resolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docs/slugs/tryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/docusaurus.config.js +0 -18
- package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs-community/current/team.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/sidebars.json +0 -10
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/bar.md +0 -4
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/baz.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/foo/bar.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/hello.md +0 -1
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootAbsoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootRelativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootResolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootTryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/absoluteSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/relativeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/resolvedSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/tryToEscapeSlug.md +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.0-sidebars.json +0 -11
- package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.1-sidebars.json +0 -10
- package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-withSlugs-sidebars.json +0 -5
- package/src/__tests__/__fixtures__/versioned-site/versions.json +0 -5
- package/src/__tests__/__snapshots__/cli.test.ts.snap +0 -90
- package/src/__tests__/__snapshots__/index.test.ts.snap +0 -1916
- package/src/__tests__/__snapshots__/sidebars.test.ts.snap +0 -218
- package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -487
- package/src/__tests__/cli.test.ts +0 -333
- package/src/__tests__/docFrontMatter.test.ts +0 -244
- package/src/__tests__/docs.test.ts +0 -878
- package/src/__tests__/index.test.ts +0 -1871
- package/src/__tests__/lastUpdate.test.ts +0 -69
- package/src/__tests__/numberPrefix.test.ts +0 -199
- package/src/__tests__/options.test.ts +0 -231
- package/src/__tests__/sidebarItemsGenerator.test.ts +0 -336
- package/src/__tests__/sidebars.test.ts +0 -639
- package/src/__tests__/slug.test.ts +0 -109
- package/src/__tests__/translations.test.ts +0 -159
- package/src/__tests__/versions.test.ts +0 -741
- package/src/client/__tests__/docsClientUtils.test.ts +0 -371
- package/src/markdown/__tests__/__fixtures__/docs/doc-localized.md +0 -1
- package/src/markdown/__tests__/__fixtures__/docs/doc1.md +0 -13
- package/src/markdown/__tests__/__fixtures__/docs/doc2.md +0 -12
- package/src/markdown/__tests__/__fixtures__/docs/doc4.md +0 -19
- package/src/markdown/__tests__/__fixtures__/docs/doc5.md +0 -6
- package/src/markdown/__tests__/__fixtures__/docs/subdir/doc3.md +0 -3
- package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/doc2.md +0 -7
- package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/subdir/doc1.md +0 -3
- package/src/markdown/__tests__/__snapshots__/linkify.test.ts.snap +0 -82
- package/src/markdown/__tests__/linkify.test.ts +0 -190
- package/src/sidebarItemsGenerator.ts +0 -307
- package/src/sidebars.ts +0 -522
- package/src/theme/hooks/useDocs.ts +0 -103
- package/src/versions.ts +0 -572
- package/tsconfig.json +0 -9
package/lib/sidebars.js
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
|
-
*
|
|
5
|
-
* This source code is licensed under the MIT license found in the
|
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createSidebarsUtils = exports.collectSidebarsDocIds = exports.transformSidebarItems = exports.collectSidebarLinks = exports.collectSidebarCategories = exports.collectSidebarDocItems = exports.processSidebars = exports.processSidebar = exports.toSidebarItemsGeneratorVersion = exports.toSidebarItemsGeneratorDoc = exports.loadSidebars = exports.resolveSidebarPathOption = exports.DisabledSidebars = exports.DefaultSidebars = exports.DefaultCategoryCollapsedValue = void 0;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
12
|
-
const import_fresh_1 = tslib_1.__importDefault(require("import-fresh"));
|
|
13
|
-
const lodash_1 = require("lodash");
|
|
14
|
-
const utils_1 = require("@docusaurus/utils");
|
|
15
|
-
const combine_promises_1 = tslib_1.__importDefault(require("combine-promises"));
|
|
16
|
-
const sidebarItemsGenerator_1 = require("./sidebarItemsGenerator");
|
|
17
|
-
const path_1 = tslib_1.__importDefault(require("path"));
|
|
18
|
-
function isCategoryShorthand(item) {
|
|
19
|
-
return typeof item !== 'string' && !item.type;
|
|
20
|
-
}
|
|
21
|
-
// categories are collapsed by default, unless user set collapsed = false
|
|
22
|
-
exports.DefaultCategoryCollapsedValue = true;
|
|
23
|
-
/**
|
|
24
|
-
* Convert {category1: [item1,item2]} shorthand syntax to long-form syntax
|
|
25
|
-
*/
|
|
26
|
-
function normalizeCategoryShorthand(sidebar) {
|
|
27
|
-
return Object.entries(sidebar).map(([label, items]) => ({
|
|
28
|
-
type: 'category',
|
|
29
|
-
collapsed: exports.DefaultCategoryCollapsedValue,
|
|
30
|
-
label,
|
|
31
|
-
items,
|
|
32
|
-
}));
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Check that item contains only allowed keys.
|
|
36
|
-
*/
|
|
37
|
-
function assertItem(item, keys) {
|
|
38
|
-
const unknownKeys = Object.keys(item).filter(
|
|
39
|
-
// @ts-expect-error: key is always string
|
|
40
|
-
(key) => !keys.includes(key) && key !== 'type');
|
|
41
|
-
if (unknownKeys.length) {
|
|
42
|
-
throw new Error(`Unknown sidebar item keys: ${unknownKeys}. Item: ${JSON.stringify(item)}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
function assertIsCategory(item) {
|
|
46
|
-
assertItem(item, ['items', 'label', 'collapsed', 'customProps']);
|
|
47
|
-
if (typeof item.label !== 'string') {
|
|
48
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "label" must be a string.`);
|
|
49
|
-
}
|
|
50
|
-
if (!Array.isArray(item.items)) {
|
|
51
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "items" must be an array.`);
|
|
52
|
-
}
|
|
53
|
-
// "collapsed" is an optional property
|
|
54
|
-
if (typeof item.collapsed !== 'undefined' &&
|
|
55
|
-
typeof item.collapsed !== 'boolean') {
|
|
56
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "collapsed" must be a boolean.`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
function assertIsAutogenerated(item) {
|
|
60
|
-
assertItem(item, ['dirName', 'customProps']);
|
|
61
|
-
if (typeof item.dirName !== 'string') {
|
|
62
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "dirName" must be a string.`);
|
|
63
|
-
}
|
|
64
|
-
if (item.dirName.startsWith('/') || item.dirName.endsWith('/')) {
|
|
65
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "dirName" must be a dir path relative to the docs folder root, and should not start or end with slash`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
function assertIsDoc(item) {
|
|
69
|
-
assertItem(item, ['id', 'label', 'customProps']);
|
|
70
|
-
if (typeof item.id !== 'string') {
|
|
71
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "id" must be a string.`);
|
|
72
|
-
}
|
|
73
|
-
if (item.label && typeof item.label !== 'string') {
|
|
74
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "label" must be a string.`);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function assertIsLink(item) {
|
|
78
|
-
assertItem(item, ['href', 'label', 'customProps']);
|
|
79
|
-
if (typeof item.href !== 'string') {
|
|
80
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "href" must be a string.`);
|
|
81
|
-
}
|
|
82
|
-
if (typeof item.label !== 'string') {
|
|
83
|
-
throw new Error(`Error loading ${JSON.stringify(item)}: "label" must be a string.`);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Normalizes recursively item and all its children. Ensures that at the end
|
|
88
|
-
* each item will be an object with the corresponding type.
|
|
89
|
-
*/
|
|
90
|
-
function normalizeItem(item) {
|
|
91
|
-
if (typeof item === 'string') {
|
|
92
|
-
return [
|
|
93
|
-
{
|
|
94
|
-
type: 'doc',
|
|
95
|
-
id: item,
|
|
96
|
-
},
|
|
97
|
-
];
|
|
98
|
-
}
|
|
99
|
-
if (isCategoryShorthand(item)) {
|
|
100
|
-
return lodash_1.flatMap(normalizeCategoryShorthand(item), normalizeItem);
|
|
101
|
-
}
|
|
102
|
-
switch (item.type) {
|
|
103
|
-
case 'category':
|
|
104
|
-
assertIsCategory(item);
|
|
105
|
-
return [
|
|
106
|
-
{
|
|
107
|
-
collapsed: exports.DefaultCategoryCollapsedValue,
|
|
108
|
-
...item,
|
|
109
|
-
items: lodash_1.flatMap(item.items, normalizeItem),
|
|
110
|
-
},
|
|
111
|
-
];
|
|
112
|
-
case 'autogenerated':
|
|
113
|
-
assertIsAutogenerated(item);
|
|
114
|
-
return [item];
|
|
115
|
-
case 'link':
|
|
116
|
-
assertIsLink(item);
|
|
117
|
-
return [item];
|
|
118
|
-
case 'ref':
|
|
119
|
-
case 'doc':
|
|
120
|
-
assertIsDoc(item);
|
|
121
|
-
return [item];
|
|
122
|
-
default: {
|
|
123
|
-
const extraMigrationError = item.type === 'subcategory'
|
|
124
|
-
? 'Docusaurus v2: "subcategory" has been renamed as "category".'
|
|
125
|
-
: '';
|
|
126
|
-
throw new Error(`Unknown sidebar item type "${item.type}". Sidebar item is ${JSON.stringify(item)}.\n${extraMigrationError}`);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
function normalizeSidebar(sidebar) {
|
|
131
|
-
const normalizedSidebar = Array.isArray(sidebar)
|
|
132
|
-
? sidebar
|
|
133
|
-
: normalizeCategoryShorthand(sidebar);
|
|
134
|
-
return lodash_1.flatMap(normalizedSidebar, normalizeItem);
|
|
135
|
-
}
|
|
136
|
-
function normalizeSidebars(sidebars) {
|
|
137
|
-
return lodash_1.mapValues(sidebars, normalizeSidebar);
|
|
138
|
-
}
|
|
139
|
-
exports.DefaultSidebars = {
|
|
140
|
-
defaultSidebar: [
|
|
141
|
-
{
|
|
142
|
-
type: 'autogenerated',
|
|
143
|
-
dirName: '.',
|
|
144
|
-
},
|
|
145
|
-
],
|
|
146
|
-
};
|
|
147
|
-
exports.DisabledSidebars = {};
|
|
148
|
-
// If a path is provided, make it absolute
|
|
149
|
-
// use this before loadSidebars()
|
|
150
|
-
function resolveSidebarPathOption(siteDir, sidebarPathOption) {
|
|
151
|
-
return sidebarPathOption
|
|
152
|
-
? path_1.default.resolve(siteDir, sidebarPathOption)
|
|
153
|
-
: sidebarPathOption;
|
|
154
|
-
}
|
|
155
|
-
exports.resolveSidebarPathOption = resolveSidebarPathOption;
|
|
156
|
-
// TODO refactor: make async
|
|
157
|
-
// Note: sidebarFilePath must be absolute, use resolveSidebarPathOption
|
|
158
|
-
function loadSidebars(sidebarFilePath) {
|
|
159
|
-
// false => no sidebars
|
|
160
|
-
if (sidebarFilePath === false) {
|
|
161
|
-
return exports.DisabledSidebars;
|
|
162
|
-
}
|
|
163
|
-
// undefined => defaults to autogenerated sidebars
|
|
164
|
-
if (typeof sidebarFilePath === 'undefined') {
|
|
165
|
-
return exports.DefaultSidebars;
|
|
166
|
-
}
|
|
167
|
-
// unexisting sidebars file: no sidebars
|
|
168
|
-
// Note: this edge case can happen on versioned docs, not current version
|
|
169
|
-
// We avoid creating empty versioned sidebars file with the CLI
|
|
170
|
-
if (!fs_extra_1.default.existsSync(sidebarFilePath)) {
|
|
171
|
-
return exports.DisabledSidebars;
|
|
172
|
-
}
|
|
173
|
-
// We don't want sidebars to be cached because of hot reloading.
|
|
174
|
-
const sidebarJson = import_fresh_1.default(sidebarFilePath);
|
|
175
|
-
return normalizeSidebars(sidebarJson);
|
|
176
|
-
}
|
|
177
|
-
exports.loadSidebars = loadSidebars;
|
|
178
|
-
function toSidebarItemsGeneratorDoc(doc) {
|
|
179
|
-
return lodash_1.pick(doc, [
|
|
180
|
-
'id',
|
|
181
|
-
'frontMatter',
|
|
182
|
-
'source',
|
|
183
|
-
'sourceDirName',
|
|
184
|
-
'sidebarPosition',
|
|
185
|
-
]);
|
|
186
|
-
}
|
|
187
|
-
exports.toSidebarItemsGeneratorDoc = toSidebarItemsGeneratorDoc;
|
|
188
|
-
function toSidebarItemsGeneratorVersion(version) {
|
|
189
|
-
return lodash_1.pick(version, ['versionName', 'contentPath']);
|
|
190
|
-
}
|
|
191
|
-
exports.toSidebarItemsGeneratorVersion = toSidebarItemsGeneratorVersion;
|
|
192
|
-
// Handle the generation of autogenerated sidebar items
|
|
193
|
-
async function processSidebar({ sidebarItemsGenerator, numberPrefixParser, unprocessedSidebar, docs, version, }) {
|
|
194
|
-
// Just a minor lazy transformation optimization
|
|
195
|
-
const getSidebarItemsGeneratorDocsAndVersion = lodash_1.memoize(() => ({
|
|
196
|
-
docs: docs.map(toSidebarItemsGeneratorDoc),
|
|
197
|
-
version: toSidebarItemsGeneratorVersion(version),
|
|
198
|
-
}));
|
|
199
|
-
async function processRecursive(item) {
|
|
200
|
-
if (item.type === 'category') {
|
|
201
|
-
return [
|
|
202
|
-
{
|
|
203
|
-
...item,
|
|
204
|
-
items: (await Promise.all(item.items.map(processRecursive))).flat(),
|
|
205
|
-
},
|
|
206
|
-
];
|
|
207
|
-
}
|
|
208
|
-
if (item.type === 'autogenerated') {
|
|
209
|
-
return sidebarItemsGenerator({
|
|
210
|
-
item,
|
|
211
|
-
numberPrefixParser,
|
|
212
|
-
defaultSidebarItemsGenerator: sidebarItemsGenerator_1.DefaultSidebarItemsGenerator,
|
|
213
|
-
...getSidebarItemsGeneratorDocsAndVersion(),
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
return [item];
|
|
217
|
-
}
|
|
218
|
-
return (await Promise.all(unprocessedSidebar.map(processRecursive))).flat();
|
|
219
|
-
}
|
|
220
|
-
exports.processSidebar = processSidebar;
|
|
221
|
-
async function processSidebars({ sidebarItemsGenerator, numberPrefixParser, unprocessedSidebars, docs, version, }) {
|
|
222
|
-
return combine_promises_1.default(lodash_1.mapValues(unprocessedSidebars, (unprocessedSidebar) => processSidebar({
|
|
223
|
-
sidebarItemsGenerator,
|
|
224
|
-
numberPrefixParser,
|
|
225
|
-
unprocessedSidebar,
|
|
226
|
-
docs,
|
|
227
|
-
version,
|
|
228
|
-
})));
|
|
229
|
-
}
|
|
230
|
-
exports.processSidebars = processSidebars;
|
|
231
|
-
function collectSidebarItemsOfType(type, sidebar) {
|
|
232
|
-
function collectRecursive(item) {
|
|
233
|
-
const currentItemsCollected = item.type === type ? [item] : [];
|
|
234
|
-
const childItemsCollected = item.type === 'category' ? lodash_1.flatten(item.items.map(collectRecursive)) : [];
|
|
235
|
-
return [...currentItemsCollected, ...childItemsCollected];
|
|
236
|
-
}
|
|
237
|
-
return lodash_1.flatten(sidebar.map(collectRecursive));
|
|
238
|
-
}
|
|
239
|
-
function collectSidebarDocItems(sidebar) {
|
|
240
|
-
return collectSidebarItemsOfType('doc', sidebar);
|
|
241
|
-
}
|
|
242
|
-
exports.collectSidebarDocItems = collectSidebarDocItems;
|
|
243
|
-
function collectSidebarCategories(sidebar) {
|
|
244
|
-
return collectSidebarItemsOfType('category', sidebar);
|
|
245
|
-
}
|
|
246
|
-
exports.collectSidebarCategories = collectSidebarCategories;
|
|
247
|
-
function collectSidebarLinks(sidebar) {
|
|
248
|
-
return collectSidebarItemsOfType('link', sidebar);
|
|
249
|
-
}
|
|
250
|
-
exports.collectSidebarLinks = collectSidebarLinks;
|
|
251
|
-
function transformSidebarItems(sidebar, updateFn) {
|
|
252
|
-
function transformRecursive(item) {
|
|
253
|
-
if (item.type === 'category') {
|
|
254
|
-
return updateFn({
|
|
255
|
-
...item,
|
|
256
|
-
items: item.items.map(transformRecursive),
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
return updateFn(item);
|
|
260
|
-
}
|
|
261
|
-
return sidebar.map(transformRecursive);
|
|
262
|
-
}
|
|
263
|
-
exports.transformSidebarItems = transformSidebarItems;
|
|
264
|
-
function collectSidebarsDocIds(sidebars) {
|
|
265
|
-
return lodash_1.mapValues(sidebars, (sidebar) => {
|
|
266
|
-
return collectSidebarDocItems(sidebar).map((docItem) => docItem.id);
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
exports.collectSidebarsDocIds = collectSidebarsDocIds;
|
|
270
|
-
function createSidebarsUtils(sidebars) {
|
|
271
|
-
const sidebarNameToDocIds = collectSidebarsDocIds(sidebars);
|
|
272
|
-
function getFirstDocIdOfFirstSidebar() {
|
|
273
|
-
var _a;
|
|
274
|
-
return (_a = Object.values(sidebarNameToDocIds)[0]) === null || _a === void 0 ? void 0 : _a[0];
|
|
275
|
-
}
|
|
276
|
-
function getSidebarNameByDocId(docId) {
|
|
277
|
-
// TODO lookup speed can be optimized
|
|
278
|
-
const entry = Object.entries(sidebarNameToDocIds).find(([_sidebarName, docIds]) => docIds.includes(docId));
|
|
279
|
-
return entry === null || entry === void 0 ? void 0 : entry[0];
|
|
280
|
-
}
|
|
281
|
-
function getDocNavigation(docId) {
|
|
282
|
-
const sidebarName = getSidebarNameByDocId(docId);
|
|
283
|
-
if (sidebarName) {
|
|
284
|
-
const docIds = sidebarNameToDocIds[sidebarName];
|
|
285
|
-
const currentIndex = docIds.indexOf(docId);
|
|
286
|
-
const { previous, next } = utils_1.getElementsAround(docIds, currentIndex);
|
|
287
|
-
return {
|
|
288
|
-
sidebarName,
|
|
289
|
-
previousId: previous,
|
|
290
|
-
nextId: next,
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
return {
|
|
295
|
-
sidebarName: undefined,
|
|
296
|
-
previousId: undefined,
|
|
297
|
-
nextId: undefined,
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
function checkSidebarsDocIds(validDocIds, sidebarFilePath) {
|
|
302
|
-
const allSidebarDocIds = lodash_1.flatten(Object.values(sidebarNameToDocIds));
|
|
303
|
-
const invalidSidebarDocIds = lodash_1.difference(allSidebarDocIds, validDocIds);
|
|
304
|
-
if (invalidSidebarDocIds.length > 0) {
|
|
305
|
-
throw new Error(`Invalid sidebar file at "${utils_1.toMessageRelativeFilePath(sidebarFilePath)}".
|
|
306
|
-
These sidebar document ids do not exist:
|
|
307
|
-
- ${invalidSidebarDocIds.sort().join('\n- ')}
|
|
308
|
-
|
|
309
|
-
Available document ids are:
|
|
310
|
-
- ${validDocIds.sort().join('\n- ')}`);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return {
|
|
314
|
-
getFirstDocIdOfFirstSidebar,
|
|
315
|
-
getSidebarNameByDocId,
|
|
316
|
-
getDocNavigation,
|
|
317
|
-
checkSidebarsDocIds,
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
exports.createSidebarsUtils = createSidebarsUtils;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
import { GlobalPluginData, GlobalVersion } from '../../types';
|
|
8
|
-
import { ActivePlugin, ActiveDocContext, DocVersionSuggestions, GetActivePluginOptions } from '../../client/docsClientUtils';
|
|
9
|
-
export declare const useAllDocsData: () => Record<string, GlobalPluginData>;
|
|
10
|
-
export declare const useDocsData: (pluginId: string | undefined) => GlobalPluginData;
|
|
11
|
-
export declare const useActivePlugin: (options?: GetActivePluginOptions) => ActivePlugin | undefined;
|
|
12
|
-
export declare const useActivePluginAndVersion: (options?: GetActivePluginOptions) => {
|
|
13
|
-
activePlugin: ActivePlugin;
|
|
14
|
-
activeVersion: GlobalVersion | undefined;
|
|
15
|
-
} | undefined;
|
|
16
|
-
export declare const useVersions: (pluginId: string | undefined) => GlobalVersion[];
|
|
17
|
-
export declare const useLatestVersion: (pluginId: string | undefined) => GlobalVersion;
|
|
18
|
-
export declare const useActiveVersion: (pluginId: string | undefined) => GlobalVersion | undefined;
|
|
19
|
-
export declare const useActiveDocContext: (pluginId: string | undefined) => ActiveDocContext;
|
|
20
|
-
export declare const useDocVersionSuggestions: (pluginId: string | undefined) => DocVersionSuggestions;
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
|
-
*
|
|
5
|
-
* This source code is licensed under the MIT license found in the
|
|
6
|
-
* LICENSE file in the root directory of this source tree.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.useDocVersionSuggestions = exports.useActiveDocContext = exports.useActiveVersion = exports.useLatestVersion = exports.useVersions = exports.useActivePluginAndVersion = exports.useActivePlugin = exports.useDocsData = exports.useAllDocsData = void 0;
|
|
10
|
-
const tslib_1 = require("tslib");
|
|
11
|
-
const router_1 = require("@docusaurus/router");
|
|
12
|
-
const useGlobalData_1 = tslib_1.__importStar(require("@docusaurus/useGlobalData"));
|
|
13
|
-
const docsClientUtils_1 = require("../../client/docsClientUtils");
|
|
14
|
-
// Important to use a constant object to avoid React useEffect executions etc...,
|
|
15
|
-
// see https://github.com/facebook/docusaurus/issues/5089
|
|
16
|
-
const StableEmptyObject = {};
|
|
17
|
-
// Not using useAllPluginInstancesData() because in blog-only mode, docs hooks are still used by the theme
|
|
18
|
-
// We need a fail-safe fallback when the docs plugin is not in use
|
|
19
|
-
const useAllDocsData = () => { var _a;
|
|
20
|
-
// useAllPluginInstancesData('docusaurus-plugin-content-docs');
|
|
21
|
-
return (_a = useGlobalData_1.default()['docusaurus-plugin-content-docs']) !== null && _a !== void 0 ? _a : StableEmptyObject; };
|
|
22
|
-
exports.useAllDocsData = useAllDocsData;
|
|
23
|
-
const useDocsData = (pluginId) => useGlobalData_1.usePluginData('docusaurus-plugin-content-docs', pluginId);
|
|
24
|
-
exports.useDocsData = useDocsData;
|
|
25
|
-
const useActivePlugin = (options = {}) => {
|
|
26
|
-
const data = exports.useAllDocsData();
|
|
27
|
-
const { pathname } = router_1.useLocation();
|
|
28
|
-
return docsClientUtils_1.getActivePlugin(data, pathname, options);
|
|
29
|
-
};
|
|
30
|
-
exports.useActivePlugin = useActivePlugin;
|
|
31
|
-
const useActivePluginAndVersion = (options = {}) => {
|
|
32
|
-
const activePlugin = exports.useActivePlugin(options);
|
|
33
|
-
const { pathname } = router_1.useLocation();
|
|
34
|
-
if (activePlugin) {
|
|
35
|
-
const activeVersion = docsClientUtils_1.getActiveVersion(activePlugin.pluginData, pathname);
|
|
36
|
-
return {
|
|
37
|
-
activePlugin,
|
|
38
|
-
activeVersion,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
return undefined;
|
|
42
|
-
};
|
|
43
|
-
exports.useActivePluginAndVersion = useActivePluginAndVersion;
|
|
44
|
-
// versions are returned ordered (most recent first)
|
|
45
|
-
const useVersions = (pluginId) => {
|
|
46
|
-
const data = exports.useDocsData(pluginId);
|
|
47
|
-
return data.versions;
|
|
48
|
-
};
|
|
49
|
-
exports.useVersions = useVersions;
|
|
50
|
-
const useLatestVersion = (pluginId) => {
|
|
51
|
-
const data = exports.useDocsData(pluginId);
|
|
52
|
-
return docsClientUtils_1.getLatestVersion(data);
|
|
53
|
-
};
|
|
54
|
-
exports.useLatestVersion = useLatestVersion;
|
|
55
|
-
// Note: return undefined on doc-unrelated pages,
|
|
56
|
-
// because there's no version currently considered as active
|
|
57
|
-
const useActiveVersion = (pluginId) => {
|
|
58
|
-
const data = exports.useDocsData(pluginId);
|
|
59
|
-
const { pathname } = router_1.useLocation();
|
|
60
|
-
return docsClientUtils_1.getActiveVersion(data, pathname);
|
|
61
|
-
};
|
|
62
|
-
exports.useActiveVersion = useActiveVersion;
|
|
63
|
-
const useActiveDocContext = (pluginId) => {
|
|
64
|
-
const data = exports.useDocsData(pluginId);
|
|
65
|
-
const { pathname } = router_1.useLocation();
|
|
66
|
-
return docsClientUtils_1.getActiveDocContext(data, pathname);
|
|
67
|
-
};
|
|
68
|
-
exports.useActiveDocContext = useActiveDocContext;
|
|
69
|
-
// Useful to say "hey, you are not on the latest docs version, please switch"
|
|
70
|
-
const useDocVersionSuggestions = (pluginId) => {
|
|
71
|
-
const data = exports.useDocsData(pluginId);
|
|
72
|
-
const { pathname } = router_1.useLocation();
|
|
73
|
-
return docsClientUtils_1.getDocVersionSuggestions(data, pathname);
|
|
74
|
-
};
|
|
75
|
-
exports.useDocVersionSuggestions = useDocVersionSuggestions;
|
package/lib/versions.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the MIT license found in the
|
|
5
|
-
* LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/
|
|
7
|
-
import { PluginOptions, VersionMetadata } from './types';
|
|
8
|
-
import { LoadContext } from '@docusaurus/types';
|
|
9
|
-
export declare function getVersionedDocsDirPath(siteDir: string, pluginId: string): string;
|
|
10
|
-
export declare function getVersionedSidebarsDirPath(siteDir: string, pluginId: string): string;
|
|
11
|
-
export declare function getVersionsFilePath(siteDir: string, pluginId: string): string;
|
|
12
|
-
export declare function readVersionsMetadata({ context, options, }: {
|
|
13
|
-
context: Pick<LoadContext, 'siteDir' | 'baseUrl' | 'i18n'>;
|
|
14
|
-
options: Pick<PluginOptions, 'id' | 'path' | 'sidebarPath' | 'routeBasePath' | 'includeCurrentVersion' | 'disableVersioning' | 'lastVersion' | 'versions' | 'onlyIncludeVersions' | 'editUrl' | 'editCurrentVersion'>;
|
|
15
|
-
}): VersionMetadata[];
|
|
16
|
-
export declare function getDocsDirPaths(versionMetadata: Pick<VersionMetadata, 'contentPath' | 'contentPathLocalized'>): [string, string];
|