mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-04 04:37:28 +02:00
refactor(content-docs): move isCategoriesShorthand to utils (#5962)
This commit is contained in:
parent
ac1df888ae
commit
2f7d6fea1e
18 changed files with 39 additions and 29 deletions
|
@ -15,7 +15,7 @@ import {
|
||||||
} from '../docs';
|
} from '../docs';
|
||||||
import {loadSidebars} from '../sidebars';
|
import {loadSidebars} from '../sidebars';
|
||||||
import {readVersionsMetadata} from '../versions';
|
import {readVersionsMetadata} from '../versions';
|
||||||
import {
|
import type {
|
||||||
DocFile,
|
DocFile,
|
||||||
DocMetadataBase,
|
DocMetadataBase,
|
||||||
MetadataOptions,
|
MetadataOptions,
|
||||||
|
@ -24,7 +24,7 @@ import {
|
||||||
EditUrlFunction,
|
EditUrlFunction,
|
||||||
DocNavLink,
|
DocNavLink,
|
||||||
} from '../types';
|
} from '../types';
|
||||||
import {LoadContext} from '@docusaurus/types';
|
import type {LoadContext} from '@docusaurus/types';
|
||||||
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
||||||
import {DEFAULT_OPTIONS} from '../options';
|
import {DEFAULT_OPTIONS} from '../options';
|
||||||
import {Optional} from 'utility-types';
|
import {Optional} from 'utility-types';
|
||||||
|
|
|
@ -14,7 +14,7 @@ import fs from 'fs-extra';
|
||||||
import pluginContentDocs from '../index';
|
import pluginContentDocs from '../index';
|
||||||
import {loadContext} from '@docusaurus/core/src/server/index';
|
import {loadContext} from '@docusaurus/core/src/server/index';
|
||||||
import {applyConfigureWebpack} from '@docusaurus/core/src/webpack/utils';
|
import {applyConfigureWebpack} from '@docusaurus/core/src/webpack/utils';
|
||||||
import {RouteConfig} from '@docusaurus/types';
|
import type {RouteConfig} from '@docusaurus/types';
|
||||||
import {posixPath} from '@docusaurus/utils';
|
import {posixPath} from '@docusaurus/utils';
|
||||||
import {sortConfig} from '@docusaurus/core/src/server/plugins';
|
import {sortConfig} from '@docusaurus/core/src/server/plugins';
|
||||||
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {
|
||||||
import {DEFAULT_OPTIONS} from '../options';
|
import {DEFAULT_OPTIONS} from '../options';
|
||||||
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
||||||
import {PluginOptions, VersionMetadata} from '../types';
|
import {PluginOptions, VersionMetadata} from '../types';
|
||||||
import {I18n} from '@docusaurus/types';
|
import type {I18n} from '@docusaurus/types';
|
||||||
|
|
||||||
const DefaultI18N: I18n = {
|
const DefaultI18N: I18n = {
|
||||||
currentLocale: 'en',
|
currentLocale: 'en',
|
||||||
|
|
|
@ -12,7 +12,7 @@ import {
|
||||||
FrontMatterTOCHeadingLevels,
|
FrontMatterTOCHeadingLevels,
|
||||||
validateFrontMatter,
|
validateFrontMatter,
|
||||||
} from '@docusaurus/utils-validation';
|
} from '@docusaurus/utils-validation';
|
||||||
import {DocFrontMatter} from './types';
|
import type {DocFrontMatter} from './types';
|
||||||
|
|
||||||
// NOTE: we don't add any default value on purpose here
|
// NOTE: we don't add any default value on purpose here
|
||||||
// We don't want default values to magically appear in doc metadata and props
|
// We don't want default values to magically appear in doc metadata and props
|
||||||
|
|
|
@ -19,7 +19,7 @@ import {
|
||||||
Globby,
|
Globby,
|
||||||
normalizeFrontMatterTags,
|
normalizeFrontMatterTags,
|
||||||
} from '@docusaurus/utils';
|
} from '@docusaurus/utils';
|
||||||
import {LoadContext} from '@docusaurus/types';
|
import type {LoadContext} from '@docusaurus/types';
|
||||||
|
|
||||||
import {getFileLastUpdate} from './lastUpdate';
|
import {getFileLastUpdate} from './lastUpdate';
|
||||||
import {
|
import {
|
||||||
|
|
|
@ -5,7 +5,12 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {DocMetadata, GlobalDoc, LoadedVersion, GlobalVersion} from './types';
|
import type {
|
||||||
|
DocMetadata,
|
||||||
|
GlobalDoc,
|
||||||
|
LoadedVersion,
|
||||||
|
GlobalVersion,
|
||||||
|
} from './types';
|
||||||
|
|
||||||
export function toGlobalDataDoc(doc: DocMetadata): GlobalDoc {
|
export function toGlobalDataDoc(doc: DocMetadata): GlobalDoc {
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -20,7 +20,7 @@ import {
|
||||||
addTrailingPathSeparator,
|
addTrailingPathSeparator,
|
||||||
createAbsoluteFilePathMatcher,
|
createAbsoluteFilePathMatcher,
|
||||||
} from '@docusaurus/utils';
|
} from '@docusaurus/utils';
|
||||||
import {LoadContext, Plugin, RouteConfig} from '@docusaurus/types';
|
import type {LoadContext, Plugin, RouteConfig} from '@docusaurus/types';
|
||||||
import {loadSidebars} from './sidebars';
|
import {loadSidebars} from './sidebars';
|
||||||
import {CategoryMetadataFilenamePattern} from './sidebars/generator';
|
import {CategoryMetadataFilenamePattern} from './sidebars/generator';
|
||||||
import {readVersionDocs, processDocMetadata, handleNavigation} from './docs';
|
import {readVersionDocs, processDocMetadata, handleNavigation} from './docs';
|
||||||
|
@ -39,7 +39,7 @@ import {
|
||||||
DocsMarkdownOption,
|
DocsMarkdownOption,
|
||||||
VersionTag,
|
VersionTag,
|
||||||
} from './types';
|
} from './types';
|
||||||
import {RuleSetRule} from 'webpack';
|
import type {RuleSetRule} from 'webpack';
|
||||||
import {cliDocsVersionCommand} from './cli';
|
import {cliDocsVersionCommand} from './cli';
|
||||||
import {VERSIONS_JSON_FILE} from './constants';
|
import {VERSIONS_JSON_FILE} from './constants';
|
||||||
import {keyBy, mapValues} from 'lodash';
|
import {keyBy, mapValues} from 'lodash';
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {NumberPrefixParser} from './types';
|
import type {NumberPrefixParser} from './types';
|
||||||
|
|
||||||
// Best-effort to avoid parsing some patterns as number prefix
|
// Best-effort to avoid parsing some patterns as number prefix
|
||||||
const IgnoredPrefixPatterns = (function () {
|
const IgnoredPrefixPatterns = (function () {
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
* This source code is licensed under the MIT license found in the
|
* This source code is licensed under the MIT license found in the
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
import {PluginOptions} from './types';
|
import type {PluginOptions} from './types';
|
||||||
import {
|
import {
|
||||||
Joi,
|
Joi,
|
||||||
RemarkPluginsSchema,
|
RemarkPluginsSchema,
|
||||||
|
@ -14,7 +14,10 @@ import {
|
||||||
} from '@docusaurus/utils-validation';
|
} from '@docusaurus/utils-validation';
|
||||||
import {GlobExcludeDefault} from '@docusaurus/utils';
|
import {GlobExcludeDefault} from '@docusaurus/utils';
|
||||||
|
|
||||||
import {OptionValidationContext, ValidationResult} from '@docusaurus/types';
|
import type {
|
||||||
|
OptionValidationContext,
|
||||||
|
ValidationResult,
|
||||||
|
} from '@docusaurus/types';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import admonitions from 'remark-admonitions';
|
import admonitions from 'remark-admonitions';
|
||||||
import {DefaultSidebarItemsGenerator} from './sidebars/generator';
|
import {DefaultSidebarItemsGenerator} from './sidebars/generator';
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {LoadedVersion, VersionTag, DocMetadata} from './types';
|
import type {LoadedVersion, VersionTag, DocMetadata} from './types';
|
||||||
import type {
|
import type {
|
||||||
SidebarItemDoc,
|
SidebarItemDoc,
|
||||||
SidebarItemLink,
|
SidebarItemLink,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import type {SidebarOptions} from '../types';
|
import type {SidebarOptions} from '../types';
|
||||||
import {
|
import type {
|
||||||
NormalizedSidebarItem,
|
NormalizedSidebarItem,
|
||||||
NormalizedSidebar,
|
NormalizedSidebar,
|
||||||
NormalizedSidebars,
|
NormalizedSidebars,
|
||||||
|
@ -15,9 +15,9 @@ import {
|
||||||
SidebarItemConfig,
|
SidebarItemConfig,
|
||||||
SidebarConfig,
|
SidebarConfig,
|
||||||
SidebarsConfig,
|
SidebarsConfig,
|
||||||
isCategoriesShorthand,
|
|
||||||
} from './types';
|
} from './types';
|
||||||
import {mapValues} from 'lodash';
|
import {mapValues} from 'lodash';
|
||||||
|
import {isCategoriesShorthand} from './utils';
|
||||||
|
|
||||||
function normalizeCategoriesShorthand(
|
function normalizeCategoriesShorthand(
|
||||||
sidebar: SidebarCategoriesShorthand,
|
sidebar: SidebarCategoriesShorthand,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
* LICENSE file in the root directory of this source tree.
|
* LICENSE file in the root directory of this source tree.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {Optional} from 'utility-types';
|
import type {Optional} from 'utility-types';
|
||||||
import type {
|
import type {
|
||||||
DocMetadataBase,
|
DocMetadataBase,
|
||||||
VersionMetadata,
|
VersionMetadata,
|
||||||
|
@ -56,12 +56,6 @@ export type SidebarCategoriesShorthand = {
|
||||||
[sidebarCategory: string]: SidebarItemConfig[];
|
[sidebarCategory: string]: SidebarItemConfig[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export function isCategoriesShorthand(
|
|
||||||
item: SidebarItemConfig,
|
|
||||||
): item is SidebarCategoriesShorthand {
|
|
||||||
return typeof item !== 'string' && !item.type;
|
|
||||||
}
|
|
||||||
|
|
||||||
export type SidebarItemConfig =
|
export type SidebarItemConfig =
|
||||||
| SidebarItemDoc
|
| SidebarItemDoc
|
||||||
| SidebarItemLink
|
| SidebarItemLink
|
||||||
|
|
|
@ -13,10 +13,18 @@ import type {
|
||||||
SidebarItemLink,
|
SidebarItemLink,
|
||||||
SidebarItemDoc,
|
SidebarItemDoc,
|
||||||
SidebarItemType,
|
SidebarItemType,
|
||||||
|
SidebarCategoriesShorthand,
|
||||||
|
SidebarItemConfig,
|
||||||
} from './types';
|
} from './types';
|
||||||
import {mapValues, difference} from 'lodash';
|
import {mapValues, difference} from 'lodash';
|
||||||
import {getElementsAround, toMessageRelativeFilePath} from '@docusaurus/utils';
|
import {getElementsAround, toMessageRelativeFilePath} from '@docusaurus/utils';
|
||||||
|
|
||||||
|
export function isCategoriesShorthand(
|
||||||
|
item: SidebarItemConfig,
|
||||||
|
): item is SidebarCategoriesShorthand {
|
||||||
|
return typeof item !== 'string' && !item.type;
|
||||||
|
}
|
||||||
|
|
||||||
export function transformSidebarItems(
|
export function transformSidebarItems(
|
||||||
sidebar: Sidebar,
|
sidebar: Sidebar,
|
||||||
updateFn: (item: SidebarItem) => SidebarItem,
|
updateFn: (item: SidebarItem) => SidebarItem,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {Joi, URISchema} from '@docusaurus/utils-validation';
|
import {Joi, URISchema} from '@docusaurus/utils-validation';
|
||||||
import {
|
import type {
|
||||||
SidebarItemConfig,
|
SidebarItemConfig,
|
||||||
SidebarCategoriesShorthand,
|
SidebarCategoriesShorthand,
|
||||||
SidebarItemBase,
|
SidebarItemBase,
|
||||||
|
@ -15,8 +15,8 @@ import {
|
||||||
SidebarItemLink,
|
SidebarItemLink,
|
||||||
SidebarItemCategoryConfig,
|
SidebarItemCategoryConfig,
|
||||||
SidebarsConfig,
|
SidebarsConfig,
|
||||||
isCategoriesShorthand,
|
|
||||||
} from './types';
|
} from './types';
|
||||||
|
import {isCategoriesShorthand} from './utils';
|
||||||
|
|
||||||
const sidebarItemBaseSchema = Joi.object<SidebarItemBase>({
|
const sidebarItemBaseSchema = Joi.object<SidebarItemBase>({
|
||||||
className: Joi.string(),
|
className: Joi.string(),
|
||||||
|
|
|
@ -15,7 +15,7 @@ import {
|
||||||
DefaultNumberPrefixParser,
|
DefaultNumberPrefixParser,
|
||||||
stripPathNumberPrefixes,
|
stripPathNumberPrefixes,
|
||||||
} from './numberPrefix';
|
} from './numberPrefix';
|
||||||
import {NumberPrefixParser} from './types';
|
import type {NumberPrefixParser} from './types';
|
||||||
|
|
||||||
export default function getSlug({
|
export default function getSlug({
|
||||||
baseID,
|
baseID,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import {groupTaggedItems} from '@docusaurus/utils';
|
import {groupTaggedItems} from '@docusaurus/utils';
|
||||||
import {VersionTags, DocMetadata} from './types';
|
import type {VersionTags, DocMetadata} from './types';
|
||||||
import {mapValues} from 'lodash';
|
import {mapValues} from 'lodash';
|
||||||
|
|
||||||
export function getVersionTags(docs: DocMetadata[]): VersionTags {
|
export function getVersionTags(docs: DocMetadata[]): VersionTags {
|
||||||
|
|
|
@ -14,7 +14,7 @@ import {
|
||||||
transformSidebarItems,
|
transformSidebarItems,
|
||||||
collectSidebarLinks,
|
collectSidebarLinks,
|
||||||
} from './sidebars/utils';
|
} from './sidebars/utils';
|
||||||
import {
|
import type {
|
||||||
TranslationFileContent,
|
TranslationFileContent,
|
||||||
TranslationFile,
|
TranslationFile,
|
||||||
TranslationFiles,
|
TranslationFiles,
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs-extra';
|
import fs from 'fs-extra';
|
||||||
import {
|
import type {
|
||||||
PluginOptions,
|
PluginOptions,
|
||||||
VersionBanner,
|
VersionBanner,
|
||||||
VersionMetadata,
|
VersionMetadata,
|
||||||
|
@ -22,7 +22,7 @@ import {
|
||||||
} from './constants';
|
} from './constants';
|
||||||
|
|
||||||
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
import {DEFAULT_PLUGIN_ID} from '@docusaurus/core/lib/constants';
|
||||||
import {LoadContext} from '@docusaurus/types';
|
import type {LoadContext} from '@docusaurus/types';
|
||||||
import {getPluginI18nPath, normalizeUrl, posixPath} from '@docusaurus/utils';
|
import {getPluginI18nPath, normalizeUrl, posixPath} from '@docusaurus/utils';
|
||||||
import {difference} from 'lodash';
|
import {difference} from 'lodash';
|
||||||
import {resolveSidebarPathOption} from './sidebars';
|
import {resolveSidebarPathOption} from './sidebars';
|
||||||
|
|
Loading…
Add table
Reference in a new issue