mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-05 12:22:45 +02:00
refactor(theme-common): split package into public/internal API entrypoints (#7660)
* add theme-common/internal export * Split @docusaurus/theme-common into public/internal apis * fixes * public <-> private * public <-> private * public <-> private * fix * add "removeThemeInternalReexport" CI script * :s windows CI check not working: not that useful * remove bad import * refactors * reorder * make useBackToTopButton internal Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
This commit is contained in:
parent
35d320fa2c
commit
9473508c33
59 changed files with 278 additions and 204 deletions
|
@ -5,6 +5,10 @@
|
|||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/*
|
||||
* APIs to document
|
||||
*/
|
||||
|
||||
export {
|
||||
useThemeConfig,
|
||||
type ThemeConfig,
|
||||
|
@ -19,71 +23,41 @@ export {
|
|||
type FooterLinkItem,
|
||||
type ColorModeConfig,
|
||||
} from './utils/useThemeConfig';
|
||||
export {
|
||||
DocSidebarItemsExpandedStateProvider,
|
||||
useDocSidebarItemsExpandedState,
|
||||
} from './contexts/docSidebarItemsExpandedState';
|
||||
export {DocsVersionProvider, useDocsVersion} from './contexts/docsVersion';
|
||||
export {DocsSidebarProvider, useDocsSidebar} from './contexts/docsSidebar';
|
||||
export {DocProvider, useDoc} from './contexts/doc';
|
||||
export type {DocContextValue} from './contexts/doc';
|
||||
|
||||
export {createStorageSlot, listStorageKeys} from './utils/storageUtils';
|
||||
|
||||
export {useAlternatePageUtils} from './utils/useAlternatePageUtils';
|
||||
export {useContextualSearchFilters} from './utils/searchUtils';
|
||||
|
||||
export {
|
||||
parseCodeBlockTitle,
|
||||
parseLanguage,
|
||||
parseLines,
|
||||
containsLineNumbers,
|
||||
getPrismCssVariables,
|
||||
} from './utils/codeBlockUtils';
|
||||
|
||||
export {
|
||||
docVersionSearchTag,
|
||||
DEFAULT_SEARCH_TAG,
|
||||
useContextualSearchFilters,
|
||||
} from './utils/searchUtils';
|
||||
|
||||
export {
|
||||
isDocsPluginEnabled,
|
||||
useDocById,
|
||||
findSidebarCategory,
|
||||
findFirstCategoryLink,
|
||||
useCurrentSidebarCategory,
|
||||
isActiveSidebarItem,
|
||||
useSidebarBreadcrumbs,
|
||||
useDocsVersionCandidates,
|
||||
useLayoutDoc,
|
||||
useLayoutDocsSidebar,
|
||||
useDocRouteMetadata,
|
||||
} from './utils/docsUtils';
|
||||
|
||||
export {useTitleFormatter} from './utils/generalUtils';
|
||||
export {useCurrentSidebarCategory} from './utils/docsUtils';
|
||||
|
||||
export {usePluralForm} from './utils/usePluralForm';
|
||||
|
||||
export {useLocationChange} from './utils/useLocationChange';
|
||||
|
||||
export {useCollapsible, Collapsible} from './components/Collapsible';
|
||||
|
||||
export {
|
||||
useDocsPreferredVersion,
|
||||
useDocsPreferredVersionByPluginId,
|
||||
DocsPreferredVersionContextProvider,
|
||||
} from './contexts/docsPreferredVersion';
|
||||
|
||||
export {duplicates, uniq} from './utils/jsUtils';
|
||||
|
||||
export {ThemeClassNames} from './utils/ThemeClassNames';
|
||||
|
||||
export {
|
||||
AnnouncementBarProvider,
|
||||
useAnnouncementBar,
|
||||
} from './contexts/announcementBar';
|
||||
useIsomorphicLayoutEffect,
|
||||
useDynamicCallback, // TODO rename to useEvent()
|
||||
usePrevious,
|
||||
ReactContextError,
|
||||
} from './utils/reactUtils';
|
||||
|
||||
export {useLocalPathname} from './utils/useLocalPathname';
|
||||
export {PageMetadata, HtmlClassNameProvider} from './utils/metadataUtils';
|
||||
|
||||
export {useColorMode, type ColorMode} from './contexts/colorMode';
|
||||
|
||||
export {
|
||||
NavbarSecondaryMenuFiller,
|
||||
type NavbarSecondaryMenuComponent,
|
||||
} from './contexts/navbarSecondaryMenu/content';
|
||||
|
||||
export {useWindowSize} from './hooks/useWindowSize';
|
||||
|
||||
/*
|
||||
* APIs kept undocumented, on purpose
|
||||
* Note: we still guarantee retro-compatibility on those
|
||||
*/
|
||||
|
||||
export {
|
||||
translateTagsPageTitle,
|
||||
|
@ -91,75 +65,10 @@ export {
|
|||
type TagLetterEntry,
|
||||
} from './utils/tagsUtils';
|
||||
|
||||
export {useHistoryPopHandler} from './utils/historyUtils';
|
||||
|
||||
export {
|
||||
useTOCHighlight,
|
||||
type TOCHighlightConfig,
|
||||
} from './hooks/useTOCHighlight';
|
||||
|
||||
export {
|
||||
useFilteredAndTreeifiedTOC,
|
||||
useTreeifiedTOC,
|
||||
type TOCTreeNode,
|
||||
} from './utils/tocUtils';
|
||||
|
||||
export {isMultiColumnFooterLinks} from './utils/footerUtils';
|
||||
|
||||
export {
|
||||
ScrollControllerProvider,
|
||||
useScrollController,
|
||||
useScrollPosition,
|
||||
useScrollPositionBlocker,
|
||||
useSmoothScrollTo,
|
||||
} from './utils/scrollUtils';
|
||||
|
||||
export {
|
||||
useIsomorphicLayoutEffect,
|
||||
useDynamicCallback,
|
||||
usePrevious,
|
||||
ReactContextError,
|
||||
} from './utils/reactUtils';
|
||||
|
||||
export {isRegexpStringMatch} from './utils/regexpUtils';
|
||||
|
||||
export {useHomePageRoute, isSamePath} from './utils/routesUtils';
|
||||
export {duplicates, uniq} from './utils/jsUtils';
|
||||
|
||||
export {
|
||||
PageMetadata,
|
||||
HtmlClassNameProvider,
|
||||
PluginHtmlClassNameProvider,
|
||||
} from './utils/metadataUtils';
|
||||
|
||||
export {
|
||||
useColorMode,
|
||||
ColorModeProvider,
|
||||
type ColorMode,
|
||||
} from './contexts/colorMode';
|
||||
|
||||
export {splitNavbarItems, NavbarProvider} from './utils/navbarUtils';
|
||||
|
||||
export {
|
||||
useTabGroupChoice,
|
||||
TabGroupChoiceProvider,
|
||||
} from './contexts/tabGroupChoice';
|
||||
|
||||
export {useNavbarMobileSidebar} from './contexts/navbarMobileSidebar';
|
||||
export {
|
||||
NavbarSecondaryMenuFiller,
|
||||
type NavbarSecondaryMenuComponent,
|
||||
} from './contexts/navbarSecondaryMenu/content';
|
||||
export {useNavbarSecondaryMenu} from './contexts/navbarSecondaryMenu/display';
|
||||
|
||||
export {useBackToTopButton} from './hooks/useBackToTopButton';
|
||||
export {useHideableNavbar} from './hooks/useHideableNavbar';
|
||||
export {
|
||||
useKeyboardNavigation,
|
||||
keyboardFocusedClassName,
|
||||
} from './hooks/useKeyboardNavigation';
|
||||
export {usePrismTheme} from './hooks/usePrismTheme';
|
||||
export {useLockBodyScroll} from './hooks/useLockBodyScroll';
|
||||
export {useWindowSize} from './hooks/useWindowSize';
|
||||
export {useSearchPage} from './hooks/useSearchPage';
|
||||
export {useCodeWordWrap} from './hooks/useCodeWordWrap';
|
||||
export {useSkipToContent} from './hooks/useSkipToContent';
|
||||
|
|
117
packages/docusaurus-theme-common/src/internal.ts
Normal file
117
packages/docusaurus-theme-common/src/internal.ts
Normal file
|
@ -0,0 +1,117 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
// This re-export permits to handle some level of retro-compatibility. Users
|
||||
// might swizzle unsafe components and expose these internal imports. When we
|
||||
// move an API from internal to public, former internal imports should keep
|
||||
// working, so that the change doesn't become breaking.
|
||||
//
|
||||
// Important: this line is removed from build output with the
|
||||
// "removeThemeInternalReexport" script for CI checks. This ensures that none of
|
||||
// our internal code relies on this re-export and that we don't forget to
|
||||
// migrate theme internal imports to public imports.
|
||||
//
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
export * from './index';
|
||||
|
||||
export {
|
||||
DocSidebarItemsExpandedStateProvider,
|
||||
useDocSidebarItemsExpandedState,
|
||||
} from './contexts/docSidebarItemsExpandedState';
|
||||
export {DocsVersionProvider, useDocsVersion} from './contexts/docsVersion';
|
||||
export {DocsSidebarProvider, useDocsSidebar} from './contexts/docsSidebar';
|
||||
export {DocProvider, useDoc, type DocContextValue} from './contexts/doc';
|
||||
|
||||
export {
|
||||
useDocsPreferredVersion,
|
||||
useDocsPreferredVersionByPluginId,
|
||||
DocsPreferredVersionContextProvider,
|
||||
} from './contexts/docsPreferredVersion';
|
||||
|
||||
export {
|
||||
AnnouncementBarProvider,
|
||||
useAnnouncementBar,
|
||||
} from './contexts/announcementBar';
|
||||
|
||||
export {
|
||||
useTabGroupChoice,
|
||||
TabGroupChoiceProvider,
|
||||
} from './contexts/tabGroupChoice';
|
||||
|
||||
export {useNavbarMobileSidebar} from './contexts/navbarMobileSidebar';
|
||||
export {useNavbarSecondaryMenu} from './contexts/navbarSecondaryMenu/display';
|
||||
|
||||
export {ColorModeProvider} from './contexts/colorMode';
|
||||
|
||||
export {useAlternatePageUtils} from './utils/useAlternatePageUtils';
|
||||
|
||||
export {
|
||||
parseCodeBlockTitle,
|
||||
parseLanguage,
|
||||
parseLines,
|
||||
containsLineNumbers,
|
||||
} from './utils/codeBlockUtils';
|
||||
|
||||
export {docVersionSearchTag, DEFAULT_SEARCH_TAG} from './utils/searchUtils';
|
||||
|
||||
export {
|
||||
isDocsPluginEnabled,
|
||||
useDocById,
|
||||
findSidebarCategory,
|
||||
findFirstCategoryLink,
|
||||
isActiveSidebarItem,
|
||||
useSidebarBreadcrumbs,
|
||||
useDocsVersionCandidates,
|
||||
useLayoutDoc,
|
||||
useLayoutDocsSidebar,
|
||||
useDocRouteMetadata,
|
||||
} from './utils/docsUtils';
|
||||
|
||||
export {useTitleFormatter} from './utils/generalUtils';
|
||||
|
||||
export {useLocationChange} from './utils/useLocationChange';
|
||||
|
||||
export {useLocalPathname} from './utils/useLocalPathname';
|
||||
|
||||
export {useHistoryPopHandler} from './utils/historyUtils';
|
||||
|
||||
export {
|
||||
useFilteredAndTreeifiedTOC,
|
||||
useTreeifiedTOC,
|
||||
type TOCTreeNode,
|
||||
} from './utils/tocUtils';
|
||||
|
||||
export {
|
||||
ScrollControllerProvider,
|
||||
useScrollController,
|
||||
useScrollPosition,
|
||||
useScrollPositionBlocker,
|
||||
useSmoothScrollTo,
|
||||
} from './utils/scrollUtils';
|
||||
|
||||
export {useHomePageRoute, isSamePath} from './utils/routesUtils';
|
||||
|
||||
export {PluginHtmlClassNameProvider} from './utils/metadataUtils';
|
||||
|
||||
export {splitNavbarItems, NavbarProvider} from './utils/navbarUtils';
|
||||
|
||||
export {
|
||||
useTOCHighlight,
|
||||
type TOCHighlightConfig,
|
||||
} from './hooks/useTOCHighlight';
|
||||
|
||||
export {useHideableNavbar} from './hooks/useHideableNavbar';
|
||||
export {
|
||||
useKeyboardNavigation,
|
||||
keyboardFocusedClassName,
|
||||
} from './hooks/useKeyboardNavigation';
|
||||
export {useLockBodyScroll} from './hooks/useLockBodyScroll';
|
||||
export {useSearchPage} from './hooks/useSearchPage';
|
||||
export {useCodeWordWrap} from './hooks/useCodeWordWrap';
|
||||
export {useSkipToContent} from './hooks/useSkipToContent';
|
||||
export {getPrismCssVariables} from './utils/codeBlockUtils';
|
||||
export {useBackToTopButton} from './hooks/useBackToTopButton';
|
Loading…
Add table
Add a link
Reference in a new issue