@docusaurus/plugin-content-docs 2.0.0-beta.ff31de0ff → 2.0.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/categoryGeneratedIndex.d.ts +12 -0
- package/lib/categoryGeneratedIndex.js +37 -0
- package/lib/cli.d.ts +3 -2
- package/lib/cli.js +62 -72
- package/lib/client/docsClientUtils.d.ts +9 -28
- package/lib/client/docsClientUtils.js +35 -51
- package/lib/client/index.d.ts +81 -0
- package/lib/client/index.js +67 -0
- package/lib/constants.d.ts +4 -0
- package/lib/constants.js +4 -1
- package/lib/docs.d.ts +35 -8
- package/lib/docs.js +211 -78
- package/{src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars2.js → lib/frontMatter.d.ts} +4 -10
- package/lib/frontMatter.js +53 -0
- package/lib/globalData.d.ts +3 -3
- package/lib/globalData.js +35 -6
- package/lib/index.d.ts +3 -3
- package/lib/index.js +137 -146
- 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 +7 -4
- package/lib/numberPrefix.d.ts +1 -1
- package/lib/numberPrefix.js +16 -21
- package/lib/options.d.ts +3 -5
- package/lib/options.js +57 -29
- package/lib/props.d.ts +7 -2
- package/lib/props.js +87 -16
- 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 +25 -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 +59 -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 +183 -0
- package/{types.d.ts → lib/sidebars/types.js} +2 -7
- package/lib/sidebars/utils.d.ts +55 -0
- package/lib/sidebars/utils.js +259 -0
- package/lib/sidebars/validation.d.ts +11 -0
- package/lib/sidebars/validation.js +143 -0
- package/lib/slug.d.ts +5 -4
- package/lib/slug.js +29 -19
- 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 +100 -93
- package/lib/types.d.ts +13 -172
- package/lib/versions/files.d.ts +50 -0
- package/lib/versions/files.js +141 -0
- package/lib/versions/index.d.ts +36 -0
- package/lib/versions/index.js +154 -0
- package/lib/versions/validation.d.ts +17 -0
- package/lib/versions/validation.js +71 -0
- package/package.json +44 -29
- package/src/categoryGeneratedIndex.ts +60 -0
- package/src/cli.ts +94 -114
- package/src/client/docsClientUtils.ts +47 -84
- package/src/client/index.ts +158 -0
- package/src/constants.ts +4 -2
- package/src/docs.ts +294 -78
- package/src/frontMatter.ts +63 -0
- package/src/globalData.ts +57 -7
- package/src/index.ts +200 -204
- package/src/lastUpdate.ts +27 -34
- package/src/markdown/index.ts +10 -16
- package/src/markdown/linkify.ts +8 -5
- package/src/numberPrefix.ts +19 -26
- package/src/options.ts +61 -43
- package/src/plugin-content-docs.d.ts +575 -78
- package/src/props.ts +128 -23
- package/src/routes.ts +159 -0
- package/src/server-export.ts +26 -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 +91 -0
- package/src/sidebars/postProcessor.ts +112 -0
- package/src/sidebars/processor.ts +123 -0
- package/src/sidebars/types.ts +280 -0
- package/src/sidebars/utils.ts +393 -0
- package/src/sidebars/validation.ts +179 -0
- package/src/slug.ts +42 -23
- package/src/tags.ts +20 -0
- package/src/translations.ts +155 -124
- package/src/types.ts +17 -234
- package/src/versions/files.ts +216 -0
- package/src/versions/index.ts +246 -0
- package/src/versions/validation.ts +115 -0
- package/lib/.tsbuildinfo +0 -4673
- package/lib/docFrontMatter.d.ts +0 -21
- package/lib/docFrontMatter.js +0 -33
- package/lib/sidebarItemsGenerator.js +0 -211
- package/lib/sidebars.d.ts +0 -42
- package/lib/sidebars.js +0 -309
- package/lib/theme/hooks/useDocs.d.ts +0 -20
- package/lib/theme/hooks/useDocs.js +0 -72
- package/lib/versions.d.ts +0 -16
- package/lib/versions.js +0 -287
- 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 -67
- package/src/__tests__/__fixtures__/simple-site/docs/headingAsTitle.md +0 -1
- package/src/__tests__/__fixtures__/simple-site/docs/hello.md +0 -52
- 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/docusaurus.config.js +0 -14
- package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars.js +0 -23
- 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 -1907
- 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 -204
- package/src/__tests__/docs.test.ts +0 -875
- package/src/__tests__/index.test.ts +0 -1831
- package/src/__tests__/lastUpdate.test.ts +0 -68
- package/src/__tests__/numberPrefix.test.ts +0 -199
- package/src/__tests__/options.test.ts +0 -232
- package/src/__tests__/sidebarItemsGenerator.test.ts +0 -336
- package/src/__tests__/sidebars.test.ts +0 -638
- package/src/__tests__/slug.test.ts +0 -109
- package/src/__tests__/translations.test.ts +0 -159
- package/src/__tests__/versions.test.ts +0 -718
- package/src/client/__tests__/docsClientUtils.test.ts +0 -372
- package/src/docFrontMatter.ts +0 -53
- 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 -489
- package/src/theme/hooks/useDocs.ts +0 -99
- package/src/versions.ts +0 -511
- package/tsconfig.json +0 -9
package/lib/slug.js
CHANGED
|
@@ -8,33 +8,43 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
const utils_1 = require("@docusaurus/utils");
|
|
10
10
|
const numberPrefix_1 = require("./numberPrefix");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (baseSlug.startsWith('/')) {
|
|
15
|
-
slug = baseSlug;
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
11
|
+
const docs_1 = require("./docs");
|
|
12
|
+
function getSlug({ baseID, frontMatterSlug, source, sourceDirName, stripDirNumberPrefixes = true, numberPrefixParser = numberPrefix_1.DefaultNumberPrefixParser, }) {
|
|
13
|
+
function getDirNameSlug() {
|
|
18
14
|
const dirNameStripped = stripDirNumberPrefixes
|
|
19
|
-
? numberPrefix_1.stripPathNumberPrefixes(
|
|
20
|
-
:
|
|
21
|
-
const resolveDirname =
|
|
15
|
+
? (0, numberPrefix_1.stripPathNumberPrefixes)(sourceDirName, numberPrefixParser)
|
|
16
|
+
: sourceDirName;
|
|
17
|
+
const resolveDirname = sourceDirName === '.'
|
|
22
18
|
? '/'
|
|
23
|
-
: utils_1.addLeadingSlash(utils_1.addTrailingSlash(dirNameStripped));
|
|
24
|
-
|
|
19
|
+
: (0, utils_1.addLeadingSlash)((0, utils_1.addTrailingSlash)(dirNameStripped));
|
|
20
|
+
return resolveDirname;
|
|
21
|
+
}
|
|
22
|
+
function computeSlug() {
|
|
23
|
+
if (frontMatterSlug?.startsWith('/')) {
|
|
24
|
+
return frontMatterSlug;
|
|
25
|
+
}
|
|
26
|
+
const dirNameSlug = getDirNameSlug();
|
|
27
|
+
if (!frontMatterSlug &&
|
|
28
|
+
(0, docs_1.isCategoryIndex)((0, docs_1.toCategoryIndexMatcherParam)({ source, sourceDirName }))) {
|
|
29
|
+
return dirNameSlug;
|
|
30
|
+
}
|
|
31
|
+
const baseSlug = frontMatterSlug ?? baseID;
|
|
32
|
+
return (0, utils_1.resolvePathname)(baseSlug, getDirNameSlug());
|
|
25
33
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
function ensureValidSlug(slug) {
|
|
35
|
+
if (!(0, utils_1.isValidPathname)(slug)) {
|
|
36
|
+
throw new Error(`We couldn't compute a valid slug for document with ID "${baseID}" in "${sourceDirName}" directory.
|
|
37
|
+
The slug we computed looks invalid: ${slug}.
|
|
38
|
+
Maybe your slug front matter is incorrect or there are special characters in the file path?
|
|
39
|
+
By using front matter to set a custom slug, you should be able to fix this error:
|
|
31
40
|
|
|
32
|
-
Example =>
|
|
33
41
|
---
|
|
34
42
|
slug: /my/customDocPath
|
|
35
43
|
---
|
|
36
44
|
`);
|
|
45
|
+
}
|
|
46
|
+
return slug;
|
|
37
47
|
}
|
|
38
|
-
return
|
|
48
|
+
return ensureValidSlug(computeSlug());
|
|
39
49
|
}
|
|
40
50
|
exports.default = getSlug;
|
package/{src/__tests__/__fixtures__/sidebars/sidebars-first-level-not-category.js → lib/tags.d.ts}
RENAMED
|
@@ -4,17 +4,6 @@
|
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
{
|
|
11
|
-
type: 'category',
|
|
12
|
-
label: 'Getting Started',
|
|
13
|
-
items: ['greeting'],
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
type: 'doc',
|
|
17
|
-
id: 'api',
|
|
18
|
-
},
|
|
19
|
-
],
|
|
20
|
-
};
|
|
7
|
+
import type { VersionTags } from './types';
|
|
8
|
+
import type { DocMetadata } from '@docusaurus/plugin-content-docs';
|
|
9
|
+
export declare function getVersionTags(docs: DocMetadata[]): VersionTags;
|
package/lib/tags.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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.getVersionTags = void 0;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
12
|
+
const utils_1 = require("@docusaurus/utils");
|
|
13
|
+
function getVersionTags(docs) {
|
|
14
|
+
const groups = (0, utils_1.groupTaggedItems)(docs, (doc) => doc.tags);
|
|
15
|
+
return lodash_1.default.mapValues(groups, (group) => ({
|
|
16
|
+
label: group.tag.label,
|
|
17
|
+
docIds: group.items.map((item) => item.id),
|
|
18
|
+
permalink: group.tag.permalink,
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
exports.getVersionTags = getVersionTags;
|
package/lib/translations.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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 { LoadedContent } from '
|
|
8
|
-
import { TranslationFile
|
|
9
|
-
export declare function getLoadedContentTranslationFiles(loadedContent: LoadedContent):
|
|
7
|
+
import type { LoadedContent } from '@docusaurus/plugin-content-docs';
|
|
8
|
+
import type { TranslationFile } from '@docusaurus/types';
|
|
9
|
+
export declare function getLoadedContentTranslationFiles(loadedContent: LoadedContent): TranslationFile[];
|
|
10
10
|
export declare function translateLoadedContent(loadedContent: LoadedContent, translationFiles: TranslationFile[]): LoadedContent;
|
package/lib/translations.js
CHANGED
|
@@ -7,19 +7,18 @@
|
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.translateLoadedContent = exports.getLoadedContentTranslationFiles = void 0;
|
|
10
|
-
const
|
|
11
|
-
const
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
12
12
|
const utils_1 = require("@docusaurus/utils");
|
|
13
13
|
const constants_1 = require("./constants");
|
|
14
|
+
const utils_2 = require("./sidebars/utils");
|
|
14
15
|
function getVersionFileName(versionName) {
|
|
15
16
|
if (versionName === constants_1.CURRENT_VERSION_NAME) {
|
|
16
17
|
return versionName;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return `version-${versionName}`;
|
|
22
|
-
}
|
|
19
|
+
// I don't like this "version-" prefix,
|
|
20
|
+
// but it's for consistency with site/versioned_docs
|
|
21
|
+
return `version-${versionName}`;
|
|
23
22
|
}
|
|
24
23
|
// TODO legacy, the sidebar name is like "version-2.0.0-alpha.66/docs"
|
|
25
24
|
// input: "version-2.0.0-alpha.66/docs"
|
|
@@ -31,87 +30,104 @@ function getNormalizedSidebarName({ versionName, sidebarName, }) {
|
|
|
31
30
|
const [, ...rest] = sidebarName.split('/');
|
|
32
31
|
return rest.join('/');
|
|
33
32
|
}
|
|
34
|
-
/*
|
|
35
|
-
// Do we need to translate doc metadatas?
|
|
36
|
-
// It seems translating frontmatter labels is good enough
|
|
37
|
-
function getDocTranslations(doc: DocMetadata): TranslationFileContent {
|
|
38
|
-
return {
|
|
39
|
-
[`${doc.unversionedId}.title`]: {
|
|
40
|
-
message: doc.title,
|
|
41
|
-
description: `The title for doc with id=${doc.unversionedId}`,
|
|
42
|
-
},
|
|
43
|
-
...(doc.sidebar_label
|
|
44
|
-
? {
|
|
45
|
-
[`${doc.unversionedId}.sidebar_label`]: {
|
|
46
|
-
message: doc.sidebar_label,
|
|
47
|
-
description: `The sidebar label for doc with id=${doc.unversionedId}`,
|
|
48
|
-
},
|
|
49
|
-
}
|
|
50
|
-
: undefined),
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
function translateDoc(
|
|
54
|
-
doc: DocMetadata,
|
|
55
|
-
docsTranslations: TranslationFileContent,
|
|
56
|
-
): DocMetadata {
|
|
57
|
-
return {
|
|
58
|
-
...doc,
|
|
59
|
-
title: docsTranslations[`${doc.unversionedId}.title`]?.message ?? doc.title,
|
|
60
|
-
sidebar_label:
|
|
61
|
-
docsTranslations[`${doc.unversionedId}.sidebar_label`]?.message ??
|
|
62
|
-
doc.sidebar_label,
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
function getDocsTranslations(version: LoadedVersion): TranslationFileContent {
|
|
67
|
-
return mergeTranslations(version.docs.map(getDocTranslations));
|
|
68
|
-
}
|
|
69
|
-
function translateDocs(
|
|
70
|
-
docs: DocMetadata[],
|
|
71
|
-
docsTranslations: TranslationFileContent,
|
|
72
|
-
): DocMetadata[] {
|
|
73
|
-
return docs.map((doc) => translateDoc(doc, docsTranslations));
|
|
74
|
-
}
|
|
75
|
-
*/
|
|
76
33
|
function getSidebarTranslationFileContent(sidebar, sidebarName) {
|
|
77
|
-
const categories =
|
|
78
|
-
const categoryContent =
|
|
79
|
-
|
|
80
|
-
.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
34
|
+
const categories = (0, utils_2.collectSidebarCategories)(sidebar);
|
|
35
|
+
const categoryContent = Object.fromEntries(categories.flatMap((category) => {
|
|
36
|
+
const entries = [];
|
|
37
|
+
entries.push([
|
|
38
|
+
`sidebar.${sidebarName}.category.${category.label}`,
|
|
39
|
+
{
|
|
40
|
+
message: category.label,
|
|
41
|
+
description: `The label for category ${category.label} in sidebar ${sidebarName}`,
|
|
42
|
+
},
|
|
43
|
+
]);
|
|
44
|
+
if (category.link?.type === 'generated-index') {
|
|
45
|
+
if (category.link.title) {
|
|
46
|
+
entries.push([
|
|
47
|
+
`sidebar.${sidebarName}.category.${category.label}.link.generated-index.title`,
|
|
48
|
+
{
|
|
49
|
+
message: category.link.title,
|
|
50
|
+
description: `The generated-index page title for category ${category.label} in sidebar ${sidebarName}`,
|
|
51
|
+
},
|
|
52
|
+
]);
|
|
53
|
+
}
|
|
54
|
+
if (category.link.description) {
|
|
55
|
+
entries.push([
|
|
56
|
+
`sidebar.${sidebarName}.category.${category.label}.link.generated-index.description`,
|
|
57
|
+
{
|
|
58
|
+
message: category.link.description,
|
|
59
|
+
description: `The generated-index page description for category ${category.label} in sidebar ${sidebarName}`,
|
|
60
|
+
},
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return entries;
|
|
65
|
+
}));
|
|
66
|
+
const links = (0, utils_2.collectSidebarLinks)(sidebar);
|
|
67
|
+
const linksContent = Object.fromEntries(links.map((link) => [
|
|
68
|
+
`sidebar.${sidebarName}.link.${link.label}`,
|
|
69
|
+
{
|
|
70
|
+
message: link.label,
|
|
71
|
+
description: `The label for link ${link.label} in sidebar ${sidebarName}, linking to ${link.href}`,
|
|
72
|
+
},
|
|
73
|
+
]));
|
|
74
|
+
const docs = (0, utils_2.collectSidebarDocItems)(sidebar)
|
|
75
|
+
.concat((0, utils_2.collectSidebarRefs)(sidebar))
|
|
76
|
+
.filter((item) => item.translatable);
|
|
77
|
+
const docLinksContent = Object.fromEntries(docs.map((doc) => [
|
|
78
|
+
`sidebar.${sidebarName}.doc.${doc.label}`,
|
|
79
|
+
{
|
|
80
|
+
message: doc.label,
|
|
81
|
+
description: `The label for the doc item ${doc.label} in sidebar ${sidebarName}, linking to the doc ${doc.id}`,
|
|
82
|
+
},
|
|
83
|
+
]));
|
|
84
|
+
return (0, utils_1.mergeTranslations)([categoryContent, linksContent, docLinksContent]);
|
|
94
85
|
}
|
|
95
86
|
function translateSidebar({ sidebar, sidebarName, sidebarsTranslations, }) {
|
|
96
|
-
|
|
97
|
-
|
|
87
|
+
function transformSidebarCategoryLink(category) {
|
|
88
|
+
if (!category.link) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
if (category.link.type === 'generated-index') {
|
|
92
|
+
const title = sidebarsTranslations[`sidebar.${sidebarName}.category.${category.label}.link.generated-index.title`]?.message ?? category.link.title;
|
|
93
|
+
const description = sidebarsTranslations[`sidebar.${sidebarName}.category.${category.label}.link.generated-index.description`]?.message ?? category.link.description;
|
|
94
|
+
return {
|
|
95
|
+
...category.link,
|
|
96
|
+
title,
|
|
97
|
+
description,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return category.link;
|
|
101
|
+
}
|
|
102
|
+
return (0, utils_2.transformSidebarItems)(sidebar, (item) => {
|
|
98
103
|
if (item.type === 'category') {
|
|
104
|
+
const link = transformSidebarCategoryLink(item);
|
|
99
105
|
return {
|
|
100
106
|
...item,
|
|
101
|
-
label:
|
|
107
|
+
label: sidebarsTranslations[`sidebar.${sidebarName}.category.${item.label}`]
|
|
108
|
+
?.message ?? item.label,
|
|
109
|
+
...(link && { link }),
|
|
102
110
|
};
|
|
103
111
|
}
|
|
104
112
|
if (item.type === 'link') {
|
|
105
113
|
return {
|
|
106
114
|
...item,
|
|
107
|
-
label:
|
|
115
|
+
label: sidebarsTranslations[`sidebar.${sidebarName}.link.${item.label}`]
|
|
116
|
+
?.message ?? item.label,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
if ((item.type === 'doc' || item.type === 'ref') && item.translatable) {
|
|
120
|
+
return {
|
|
121
|
+
...item,
|
|
122
|
+
label: sidebarsTranslations[`sidebar.${sidebarName}.doc.${item.label}`]
|
|
123
|
+
?.message ?? item.label,
|
|
108
124
|
};
|
|
109
125
|
}
|
|
110
126
|
return item;
|
|
111
127
|
});
|
|
112
128
|
}
|
|
113
129
|
function getSidebarsTranslations(version) {
|
|
114
|
-
return utils_1.mergeTranslations(Object.entries(version.sidebars).map(([sidebarName, sidebar]) => {
|
|
130
|
+
return (0, utils_1.mergeTranslations)(Object.entries(version.sidebars).map(([sidebarName, sidebar]) => {
|
|
115
131
|
const normalizedSidebarName = getNormalizedSidebarName({
|
|
116
132
|
sidebarName,
|
|
117
133
|
versionName: version.versionName,
|
|
@@ -120,49 +136,40 @@ function getSidebarsTranslations(version) {
|
|
|
120
136
|
}));
|
|
121
137
|
}
|
|
122
138
|
function translateSidebars(version, sidebarsTranslations) {
|
|
123
|
-
return lodash_1.mapValues(version.sidebars, (sidebar, sidebarName) => {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
sidebarName
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
});
|
|
132
|
-
});
|
|
139
|
+
return lodash_1.default.mapValues(version.sidebars, (sidebar, sidebarName) => translateSidebar({
|
|
140
|
+
sidebar,
|
|
141
|
+
sidebarName: getNormalizedSidebarName({
|
|
142
|
+
sidebarName,
|
|
143
|
+
versionName: version.versionName,
|
|
144
|
+
}),
|
|
145
|
+
sidebarsTranslations,
|
|
146
|
+
}));
|
|
133
147
|
}
|
|
134
148
|
function getVersionTranslationFiles(version) {
|
|
135
149
|
const versionTranslations = {
|
|
136
150
|
'version.label': {
|
|
137
|
-
message: version.
|
|
151
|
+
message: version.label,
|
|
138
152
|
description: `The label for version ${version.versionName}`,
|
|
139
153
|
},
|
|
140
154
|
};
|
|
141
155
|
const sidebarsTranslations = getSidebarsTranslations(version);
|
|
142
|
-
// const docsTranslations: TranslationFileContent = getDocsTranslations(version);
|
|
143
156
|
return [
|
|
144
157
|
{
|
|
145
158
|
path: getVersionFileName(version.versionName),
|
|
146
|
-
content: utils_1.mergeTranslations([
|
|
147
|
-
versionTranslations,
|
|
148
|
-
sidebarsTranslations,
|
|
149
|
-
// docsTranslations,
|
|
150
|
-
]),
|
|
159
|
+
content: (0, utils_1.mergeTranslations)([versionTranslations, sidebarsTranslations]),
|
|
151
160
|
},
|
|
152
161
|
];
|
|
153
162
|
}
|
|
154
163
|
function translateVersion(version, translationFiles) {
|
|
155
|
-
var _a;
|
|
156
164
|
const versionTranslations = translationFiles[getVersionFileName(version.versionName)].content;
|
|
157
165
|
return {
|
|
158
166
|
...version,
|
|
159
|
-
|
|
167
|
+
label: versionTranslations['version.label']?.message ?? version.label,
|
|
160
168
|
sidebars: translateSidebars(version, versionTranslations),
|
|
161
|
-
// docs: translateDocs(version.docs, versionTranslations),
|
|
162
169
|
};
|
|
163
170
|
}
|
|
164
171
|
function getVersionsTranslationFiles(versions) {
|
|
165
|
-
return
|
|
172
|
+
return versions.flatMap(getVersionTranslationFiles);
|
|
166
173
|
}
|
|
167
174
|
function translateVersions(versions, translationFiles) {
|
|
168
175
|
return versions.map((version) => translateVersion(version, translationFiles));
|
|
@@ -172,7 +179,7 @@ function getLoadedContentTranslationFiles(loadedContent) {
|
|
|
172
179
|
}
|
|
173
180
|
exports.getLoadedContentTranslationFiles = getLoadedContentTranslationFiles;
|
|
174
181
|
function translateLoadedContent(loadedContent, translationFiles) {
|
|
175
|
-
const translationFilesMap = lodash_1.keyBy(translationFiles, (f) => f.path);
|
|
182
|
+
const translationFilesMap = lodash_1.default.keyBy(translationFiles, (f) => f.path);
|
|
176
183
|
return {
|
|
177
184
|
loadedVersions: translateVersions(loadedContent.loadedVersions, translationFilesMap),
|
|
178
185
|
};
|
package/lib/types.d.ts
CHANGED
|
@@ -4,192 +4,33 @@
|
|
|
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 type {
|
|
8
|
-
import {
|
|
7
|
+
import type { BrokenMarkdownLink, Tag } from '@docusaurus/utils';
|
|
8
|
+
import type { VersionMetadata, LoadedVersion, CategoryGeneratedIndexMetadata } from '@docusaurus/plugin-content-docs';
|
|
9
|
+
import type { SidebarsUtils } from './sidebars/utils';
|
|
9
10
|
export declare type DocFile = {
|
|
10
11
|
contentPath: string;
|
|
11
12
|
filePath: string;
|
|
12
13
|
source: string;
|
|
13
14
|
content: string;
|
|
14
|
-
lastUpdate: LastUpdateData;
|
|
15
|
-
};
|
|
16
|
-
export declare type VersionName = string;
|
|
17
|
-
export declare type VersionMetadata = ContentPaths & {
|
|
18
|
-
versionName: VersionName;
|
|
19
|
-
versionLabel: string;
|
|
20
|
-
versionPath: string;
|
|
21
|
-
versionEditUrl?: string | undefined;
|
|
22
|
-
versionEditUrlLocalized?: string | undefined;
|
|
23
|
-
isLast: boolean;
|
|
24
|
-
sidebarFilePath: string | false | undefined;
|
|
25
|
-
routePriority: number | undefined;
|
|
26
|
-
};
|
|
27
|
-
export declare type EditUrlFunction = (editUrlParams: {
|
|
28
|
-
version: string;
|
|
29
|
-
versionDocsDirPath: string;
|
|
30
|
-
docPath: string;
|
|
31
|
-
permalink: string;
|
|
32
|
-
locale: string;
|
|
33
|
-
}) => string | undefined;
|
|
34
|
-
export declare type MetadataOptions = {
|
|
35
|
-
routeBasePath: string;
|
|
36
|
-
homePageId?: string;
|
|
37
|
-
editUrl?: string | EditUrlFunction;
|
|
38
|
-
editCurrentVersion: boolean;
|
|
39
|
-
editLocalizedFiles: boolean;
|
|
40
|
-
showLastUpdateTime?: boolean;
|
|
41
|
-
showLastUpdateAuthor?: boolean;
|
|
42
|
-
numberPrefixParser: NumberPrefixParser;
|
|
43
|
-
};
|
|
44
|
-
export declare type PathOptions = {
|
|
45
|
-
path: string;
|
|
46
|
-
sidebarPath?: string | false | undefined;
|
|
47
|
-
};
|
|
48
|
-
export declare type VersionOptions = {
|
|
49
|
-
path?: string;
|
|
50
|
-
label?: string;
|
|
51
|
-
};
|
|
52
|
-
export declare type VersionsOptions = {
|
|
53
|
-
lastVersion?: string;
|
|
54
|
-
versions: Record<string, VersionOptions>;
|
|
55
|
-
onlyIncludeVersions?: string[];
|
|
56
|
-
};
|
|
57
|
-
export declare type PluginOptions = MetadataOptions & PathOptions & VersionsOptions & RemarkAndRehypePluginOptions & {
|
|
58
|
-
id: string;
|
|
59
|
-
include: string[];
|
|
60
|
-
docLayoutComponent: string;
|
|
61
|
-
docItemComponent: string;
|
|
62
|
-
admonitions: Record<string, unknown>;
|
|
63
|
-
disableVersioning: boolean;
|
|
64
|
-
excludeNextVersionDocs?: boolean;
|
|
65
|
-
includeCurrentVersion: boolean;
|
|
66
|
-
sidebarItemsGenerator: SidebarItemsGeneratorOption;
|
|
67
|
-
};
|
|
68
|
-
export declare type SidebarItemBase = {
|
|
69
|
-
customProps?: Record<string, unknown>;
|
|
70
|
-
};
|
|
71
|
-
export declare type SidebarItemDoc = SidebarItemBase & {
|
|
72
|
-
type: 'doc' | 'ref';
|
|
73
|
-
label?: string;
|
|
74
|
-
id: string;
|
|
75
|
-
};
|
|
76
|
-
export declare type SidebarItemLink = SidebarItemBase & {
|
|
77
|
-
type: 'link';
|
|
78
|
-
href: string;
|
|
79
|
-
label: string;
|
|
80
|
-
};
|
|
81
|
-
export declare type SidebarItemCategory = SidebarItemBase & {
|
|
82
|
-
type: 'category';
|
|
83
|
-
label: string;
|
|
84
|
-
items: SidebarItem[];
|
|
85
|
-
collapsed: boolean;
|
|
86
|
-
};
|
|
87
|
-
export declare type UnprocessedSidebarItemAutogenerated = {
|
|
88
|
-
type: 'autogenerated';
|
|
89
|
-
dirName: string;
|
|
90
|
-
};
|
|
91
|
-
export declare type UnprocessedSidebarItemCategory = SidebarItemBase & {
|
|
92
|
-
type: 'category';
|
|
93
|
-
label: string;
|
|
94
|
-
items: UnprocessedSidebarItem[];
|
|
95
|
-
collapsed: boolean;
|
|
96
|
-
};
|
|
97
|
-
export declare type UnprocessedSidebarItem = SidebarItemDoc | SidebarItemLink | UnprocessedSidebarItemCategory | UnprocessedSidebarItemAutogenerated;
|
|
98
|
-
export declare type UnprocessedSidebar = UnprocessedSidebarItem[];
|
|
99
|
-
export declare type UnprocessedSidebars = Record<string, UnprocessedSidebar>;
|
|
100
|
-
export declare type SidebarItem = SidebarItemDoc | SidebarItemLink | SidebarItemCategory;
|
|
101
|
-
export declare type Sidebar = SidebarItem[];
|
|
102
|
-
export declare type SidebarItemType = SidebarItem['type'];
|
|
103
|
-
export declare type Sidebars = Record<string, Sidebar>;
|
|
104
|
-
export declare type SidebarItemsGeneratorDoc = Pick<DocMetadataBase, 'id' | 'frontMatter' | 'source' | 'sourceDirName' | 'sidebarPosition'>;
|
|
105
|
-
export declare type SidebarItemsGeneratorVersion = Pick<VersionMetadata, 'versionName' | 'contentPath'>;
|
|
106
|
-
export declare type SidebarItemsGeneratorArgs = {
|
|
107
|
-
item: UnprocessedSidebarItemAutogenerated;
|
|
108
|
-
version: SidebarItemsGeneratorVersion;
|
|
109
|
-
docs: SidebarItemsGeneratorDoc[];
|
|
110
|
-
numberPrefixParser: NumberPrefixParser;
|
|
111
|
-
};
|
|
112
|
-
export declare type SidebarItemsGenerator = (generatorArgs: SidebarItemsGeneratorArgs) => Promise<SidebarItem[]>;
|
|
113
|
-
export declare type SidebarItemsGeneratorOptionArgs = {
|
|
114
|
-
defaultSidebarItemsGenerator: SidebarItemsGenerator;
|
|
115
|
-
} & SidebarItemsGeneratorArgs;
|
|
116
|
-
export declare type SidebarItemsGeneratorOption = (generatorArgs: SidebarItemsGeneratorOptionArgs) => Promise<SidebarItem[]>;
|
|
117
|
-
export declare type OrderMetadata = {
|
|
118
|
-
previous?: string;
|
|
119
|
-
next?: string;
|
|
120
|
-
sidebar?: string;
|
|
121
|
-
};
|
|
122
|
-
export declare type LastUpdateData = {
|
|
123
|
-
lastUpdatedAt?: number;
|
|
124
|
-
formattedLastUpdatedAt?: string;
|
|
125
|
-
lastUpdatedBy?: string;
|
|
126
|
-
};
|
|
127
|
-
export declare type FrontMatter = {
|
|
128
|
-
[key: string]: any;
|
|
129
|
-
};
|
|
130
|
-
export declare type DocMetadataBase = LastUpdateData & {
|
|
131
|
-
version: VersionName;
|
|
132
|
-
unversionedId: string;
|
|
133
|
-
id: string;
|
|
134
|
-
isDocsHomePage: boolean;
|
|
135
|
-
title: string;
|
|
136
|
-
description: string;
|
|
137
|
-
source: string;
|
|
138
|
-
sourceDirName: string;
|
|
139
|
-
slug: string;
|
|
140
|
-
permalink: string;
|
|
141
|
-
sidebar_label?: string;
|
|
142
|
-
sidebarPosition?: number;
|
|
143
|
-
editUrl?: string | null;
|
|
144
|
-
frontMatter: FrontMatter;
|
|
145
|
-
};
|
|
146
|
-
export declare type DocNavLink = {
|
|
147
|
-
title: string;
|
|
148
|
-
permalink: string;
|
|
149
|
-
};
|
|
150
|
-
export declare type DocMetadata = DocMetadataBase & {
|
|
151
|
-
sidebar?: string;
|
|
152
|
-
previous?: DocNavLink;
|
|
153
|
-
next?: DocNavLink;
|
|
154
15
|
};
|
|
155
16
|
export declare type SourceToPermalink = {
|
|
156
17
|
[source: string]: string;
|
|
157
18
|
};
|
|
158
|
-
export declare type
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
docs: DocMetadata[];
|
|
162
|
-
sidebars: Sidebars;
|
|
163
|
-
permalinkToSidebar: Record<string, string>;
|
|
164
|
-
};
|
|
165
|
-
export declare type LoadedContent = {
|
|
166
|
-
loadedVersions: LoadedVersion[];
|
|
19
|
+
export declare type VersionTag = Tag & {
|
|
20
|
+
/** All doc ids having this tag. */
|
|
21
|
+
docIds: string[];
|
|
167
22
|
};
|
|
168
|
-
export declare type
|
|
169
|
-
|
|
170
|
-
path: string;
|
|
171
|
-
sidebar: string | undefined;
|
|
23
|
+
export declare type VersionTags = {
|
|
24
|
+
[permalink: string]: VersionTag;
|
|
172
25
|
};
|
|
173
|
-
export declare type
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
isLast: boolean;
|
|
177
|
-
path: string;
|
|
178
|
-
mainDocId: string;
|
|
179
|
-
docs: GlobalDoc[];
|
|
26
|
+
export declare type FullVersion = LoadedVersion & {
|
|
27
|
+
sidebarsUtils: SidebarsUtils;
|
|
28
|
+
categoryGeneratedIndices: CategoryGeneratedIndexMetadata[];
|
|
180
29
|
};
|
|
181
|
-
export declare type
|
|
182
|
-
path: string;
|
|
183
|
-
versions: GlobalVersion[];
|
|
184
|
-
};
|
|
185
|
-
export declare type BrokenMarkdownLink = IBrokenMarkdownLink<VersionMetadata>;
|
|
30
|
+
export declare type DocBrokenMarkdownLink = BrokenMarkdownLink<VersionMetadata>;
|
|
186
31
|
export declare type DocsMarkdownOption = {
|
|
187
32
|
versionsMetadata: VersionMetadata[];
|
|
188
33
|
siteDir: string;
|
|
189
34
|
sourceToPermalink: SourceToPermalink;
|
|
190
|
-
onBrokenMarkdownLink: (brokenMarkdownLink:
|
|
191
|
-
};
|
|
192
|
-
export declare type NumberPrefixParser = (filename: string) => {
|
|
193
|
-
filename: string;
|
|
194
|
-
numberPrefix?: number;
|
|
35
|
+
onBrokenMarkdownLink: (brokenMarkdownLink: DocBrokenMarkdownLink) => void;
|
|
195
36
|
};
|
|
@@ -0,0 +1,50 @@
|
|
|
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 type { PluginOptions, VersionMetadata } from '@docusaurus/plugin-content-docs';
|
|
8
|
+
import type { VersionContext } from './index';
|
|
9
|
+
/** `[siteDir]/community_versioned_docs/version-1.0.0` */
|
|
10
|
+
export declare function getVersionDocsDirPath(siteDir: string, pluginId: string, versionName: string): string;
|
|
11
|
+
/** `[siteDir]/community_versioned_sidebars/version-1.0.0-sidebars.json` */
|
|
12
|
+
export declare function getVersionSidebarsPath(siteDir: string, pluginId: string, versionName: string): string;
|
|
13
|
+
export declare function getDocsDirPathLocalized({ localizationDir, pluginId, versionName, }: {
|
|
14
|
+
localizationDir: string;
|
|
15
|
+
pluginId: string;
|
|
16
|
+
versionName: string;
|
|
17
|
+
}): string;
|
|
18
|
+
/** `community` => `[siteDir]/community_versions.json` */
|
|
19
|
+
export declare function getVersionsFilePath(siteDir: string, pluginId: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Reads the plugin's respective `versions.json` file, and returns its content.
|
|
22
|
+
*
|
|
23
|
+
* @throws Throws if validation fails, i.e. `versions.json` doesn't contain an
|
|
24
|
+
* array of valid version names.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readVersionsFile(siteDir: string, pluginId: string): Promise<string[] | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Reads the `versions.json` file, and returns an ordered list of version names.
|
|
29
|
+
*
|
|
30
|
+
* - If `disableVersioning` is turned on, it will return `["current"]` (requires
|
|
31
|
+
* `includeCurrentVersion` to be true);
|
|
32
|
+
* - If `includeCurrentVersion` is turned on, "current" will be inserted at the
|
|
33
|
+
* beginning, if not already there.
|
|
34
|
+
*
|
|
35
|
+
* You need to use {@link filterVersions} after this.
|
|
36
|
+
*
|
|
37
|
+
* @throws Throws an error if `disableVersioning: true` but `versions.json`
|
|
38
|
+
* doesn't exist (i.e. site is not versioned)
|
|
39
|
+
* @throws Throws an error if versions list is empty (empty `versions.json` or
|
|
40
|
+
* `disableVersioning` is true, and not including current version)
|
|
41
|
+
*/
|
|
42
|
+
export declare function readVersionNames(siteDir: string, options: PluginOptions): Promise<string[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Gets the path-related version metadata.
|
|
45
|
+
*
|
|
46
|
+
* @throws Throws if the resolved docs folder or sidebars file doesn't exist.
|
|
47
|
+
* Does not throw if a versioned sidebar is missing (since we don't create empty
|
|
48
|
+
* files).
|
|
49
|
+
*/
|
|
50
|
+
export declare function getVersionMetadataPaths({ versionName, context, options, }: VersionContext): Promise<Pick<VersionMetadata, 'contentPath' | 'contentPathLocalized' | 'sidebarFilePath'>>;
|