@docusaurus/theme-classic 2.0.0-beta.138b4c997 → 2.0.0-beta.14
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/README.md +1 -1
- package/lib/admonitions.css +35 -0
- package/lib/deps.d.ts +13 -0
- package/lib/index.js +16 -15
- package/lib/prism-include-languages.js +9 -5
- package/{lib-next/types.d.ts → lib/theme-classic.d.ts} +374 -150
- package/lib/translations.js +16 -7
- package/lib/types.d.ts +0 -587
- package/lib/validateThemeConfig.js +232 -246
- package/lib-next/theme/Admonition/index.js +101 -0
- package/lib-next/theme/AnnouncementBar/index.js +7 -12
- package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib-next/theme/BackToTopButton/index.js +131 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +40 -0
- package/lib-next/theme/BlogListPage/index.js +17 -25
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/{lib/theme/MDXPage → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -2
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/{lib/theme/IconExternalLink → lib-next/theme/BlogPostAuthors}/styles.module.css +3 -4
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +70 -35
- package/lib-next/theme/BlogSidebar/index.js +11 -13
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +14 -55
- package/lib-next/theme/BlogTagsPostsPage/index.js +29 -39
- package/lib-next/theme/CodeBlock/index.js +23 -149
- package/lib-next/theme/CodeBlock/styles.module.css +12 -9
- package/lib-next/theme/Details/index.js +20 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocCard/index.js +80 -0
- package/lib-next/theme/DocCard/styles.module.css +43 -0
- package/lib-next/theme/DocCardList/index.js +19 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +49 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib-next/theme/DocItem/index.js +40 -51
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
- package/lib-next/theme/DocPage/index.js +46 -49
- package/lib-next/theme/DocPage/styles.module.css +5 -6
- package/lib-next/theme/DocPaginator/index.js +5 -33
- package/lib-next/theme/DocPaginatorNavLink/index.js +36 -0
- package/lib-next/theme/DocSidebar/index.js +65 -285
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +217 -0
- package/{lib/theme/ThemedImage → lib-next/theme/DocSidebarItem}/styles.module.css +10 -9
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/DocVersionBadge/index.js +27 -0
- package/lib-next/theme/DocVersionBanner/index.js +28 -14
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/index.js +100 -40
- package/lib-next/theme/Heading/index.js +24 -29
- package/lib-next/theme/Heading/styles.css +5 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconArrow/index.js +2 -2
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/IconEdit/index.js +2 -2
- package/lib-next/theme/IconExternalLink/index.js +2 -2
- package/lib-next/theme/IconLanguage/index.js +2 -2
- package/lib-next/theme/IconMenu/index.js +2 -2
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/Layout/index.js +3 -1
- package/lib-next/theme/LayoutHead/index.js +18 -23
- package/lib-next/theme/LayoutProviders/index.js +9 -3
- package/lib-next/theme/Logo/index.js +25 -21
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/{lib/theme/hooks → lib-next/theme/MDXComponents}/styles.css +3 -2
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +193 -56
- package/lib-next/theme/Navbar/styles.module.css +10 -3
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -147
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +7 -7
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +31 -19
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +158 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +4 -12
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/{SearchMetadatas → SearchMetadata}/index.js +1 -1
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/SkipToContent/index.js +5 -2
- package/lib-next/theme/TOC/index.js +12 -36
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/index.js +54 -0
- package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib-next/theme/TOCInline/index.js +10 -28
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
- package/lib-next/theme/Tabs/index.js +103 -48
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +27 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +42 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemeProvider/index.js +10 -7
- package/lib-next/theme/ThemedImage/index.js +5 -5
- package/lib-next/theme/Toggle/index.js +34 -37
- package/lib-next/theme/Toggle/styles.module.css +91 -3
- package/lib-next/theme/UserPreferencesProvider/index.js +9 -6
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTheme.js +4 -5
- package/lib-next/theme/hooks/useWindowSize.js +34 -20
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/package.json +27 -25
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/index.ts +23 -20
- package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
- package/src/theme/Admonition/index.tsx +106 -0
- package/src/theme/AnnouncementBar/index.tsx +8 -12
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +142 -0
- package/src/theme/BackToTopButton/styles.module.css +42 -0
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +44 -0
- package/src/theme/BlogListPage/index.tsx +18 -25
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/{lib/theme/IconEdit → src/theme/BlogPostAuthor}/styles.module.css +4 -3
- package/src/theme/BlogPostAuthors/index.tsx +39 -0
- package/src/theme/BlogPostAuthors/styles.module.css +11 -0
- package/src/theme/BlogPostItem/index.tsx +70 -80
- package/src/theme/BlogPostPage/index.tsx +72 -35
- package/src/theme/BlogSidebar/index.tsx +11 -13
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +14 -57
- package/src/theme/BlogTagsPostsPage/index.tsx +29 -39
- package/src/theme/CodeBlock/index.tsx +27 -151
- package/src/theme/CodeBlock/styles.module.css +12 -9
- package/src/theme/Details/index.tsx +24 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocCard/index.tsx +100 -0
- package/src/theme/DocCard/styles.module.css +43 -0
- package/src/theme/DocCardList/index.tsx +27 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +53 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/src/theme/DocItem/index.tsx +43 -51
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/{lib/theme/BlogPostItem → src/theme/DocItemFooter}/styles.module.css +8 -8
- package/src/theme/DocPage/index.tsx +44 -42
- package/src/theme/DocPage/styles.module.css +5 -6
- package/src/theme/DocPaginator/index.tsx +5 -33
- package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
- package/src/theme/DocSidebar/index.tsx +76 -297
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +242 -0
- package/{lib/theme/Footer → src/theme/DocSidebarItem}/styles.module.css +10 -6
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/DocVersionBadge/index.tsx +30 -0
- package/src/theme/DocVersionBanner/index.tsx +48 -21
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +113 -43
- package/src/theme/Heading/index.tsx +24 -31
- package/src/theme/Heading/styles.css +5 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconArrow/index.tsx +2 -2
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconEdit/index.tsx +2 -2
- package/src/theme/IconExternalLink/index.tsx +2 -5
- package/src/theme/IconLanguage/index.tsx +2 -6
- package/src/theme/IconMenu/index.tsx +3 -3
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/Layout/index.tsx +3 -1
- package/src/theme/LayoutHead/index.tsx +18 -17
- package/src/theme/LayoutProviders/index.tsx +9 -3
- package/src/theme/Logo/index.tsx +21 -17
- package/src/theme/MDXComponents/index.tsx +39 -5
- package/src/theme/MDXComponents/styles.css +11 -0
- package/src/theme/MDXPage/index.tsx +10 -2
- package/src/theme/Navbar/index.tsx +203 -61
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
- package/src/theme/NavbarItem/DocNavbarItem.tsx +12 -16
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +33 -21
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +180 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +8 -9
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/{SearchMetadatas → SearchMetadata}/index.tsx +2 -2
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/SkipToContent/index.tsx +5 -2
- package/src/theme/TOC/index.tsx +12 -41
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +58 -0
- package/src/theme/TOCCollapsible/styles.module.css +50 -0
- package/src/theme/TOCInline/index.tsx +13 -32
- package/src/theme/TOCItems/index.tsx +96 -0
- package/src/theme/Tabs/index.tsx +110 -54
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +31 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +45 -0
- package/src/theme/TagsListByLetter/styles.module.css +11 -0
- package/src/theme/TagsListInline/index.tsx +35 -0
- package/src/theme/TagsListInline/styles.module.css +15 -0
- package/src/theme/ThemeProvider/index.tsx +6 -2
- package/src/theme/ThemedImage/index.tsx +5 -5
- package/src/theme/Toggle/index.tsx +36 -43
- package/src/theme/Toggle/styles.module.css +91 -3
- package/src/theme/UserPreferencesProvider/index.tsx +9 -6
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +2 -2
- package/src/theme/hooks/useTheme.ts +4 -5
- package/src/theme/hooks/useWindowSize.ts +38 -20
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/theme-classic.d.ts +822 -0
- package/src/translations.ts +41 -23
- package/src/types.d.ts +0 -587
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -98
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -57
- package/codeTranslations/base.json +0 -112
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -57
- package/codeTranslations/de.json +0 -57
- package/codeTranslations/es.json +0 -57
- package/codeTranslations/fa.json +0 -57
- package/codeTranslations/fil.json +0 -57
- package/codeTranslations/fr.json +0 -57
- package/codeTranslations/he.json +0 -57
- package/codeTranslations/hi.json +0 -57
- package/codeTranslations/ja.json +0 -57
- package/codeTranslations/ko.json +0 -57
- package/codeTranslations/pl.json +0 -57
- package/codeTranslations/pt-BR.json +0 -57
- package/codeTranslations/pt-PT.json +0 -57
- package/codeTranslations/ru.json +0 -57
- package/codeTranslations/tr.json +0 -57
- package/codeTranslations/vi.json +0 -57
- package/codeTranslations/zh-Hans.json +0 -57
- package/codeTranslations/zh-Hant.json +0 -57
- package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib/__tests__/translations.test.js +0 -112
- package/lib/__tests__/validateThemeConfig.test.js +0 -333
- package/lib/theme/AnnouncementBar/index.js +0 -72
- package/lib/theme/AnnouncementBar/styles.module.css +0 -72
- package/lib/theme/BlogListPage/index.js +0 -71
- package/lib/theme/BlogListPaginator/index.js +0 -63
- package/lib/theme/BlogPostItem/index.js +0 -161
- package/lib/theme/BlogPostPage/index.js +0 -69
- package/lib/theme/BlogPostPaginator/index.js +0 -64
- package/lib/theme/BlogSidebar/index.js +0 -51
- package/lib/theme/BlogSidebar/styles.module.css +0 -44
- package/lib/theme/BlogTagsListPage/index.js +0 -76
- package/lib/theme/BlogTagsPostsPage/index.js +0 -100
- package/lib/theme/CodeBlock/index.js +0 -253
- package/lib/theme/CodeBlock/styles.module.css +0 -68
- package/lib/theme/DocItem/index.js +0 -129
- package/lib/theme/DocPage/index.js +0 -173
- package/lib/theme/DocPage/styles.module.css +0 -86
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -306
- package/lib/theme/DocSidebar/styles.module.css +0 -124
- package/lib/theme/DocVersionBanner/index.js +0 -128
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -108
- package/lib/theme/Heading/index.js +0 -76
- package/lib/theme/Heading/styles.css +0 -23
- package/lib/theme/Heading/styles.module.css +0 -15
- package/lib/theme/IconArrow/index.js +0 -28
- package/lib/theme/IconEdit/index.js +0 -34
- package/lib/theme/IconExternalLink/index.js +0 -30
- package/lib/theme/IconLanguage/index.js +0 -29
- package/lib/theme/IconMenu/index.js +0 -30
- package/lib/theme/LastUpdated/index.js +0 -61
- package/lib/theme/Layout/index.js +0 -64
- package/lib/theme/Layout/styles.css +0 -27
- package/lib/theme/LayoutHead/index.js +0 -144
- package/lib/theme/LayoutProviders/index.js +0 -36
- package/lib/theme/Logo/index.js +0 -60
- package/lib/theme/MDXComponents/index.js +0 -65
- package/lib/theme/MDXPage/index.js +0 -66
- package/lib/theme/Navbar/index.js +0 -147
- package/lib/theme/Navbar/styles.module.css +0 -20
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
- package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
- package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
- package/lib/theme/NavbarItem/index.js +0 -54
- package/lib/theme/NotFound.js +0 -57
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -49
- package/lib/theme/SkipToContent/index.js +0 -63
- package/lib/theme/SkipToContent/styles.module.css +0 -14
- package/lib/theme/TOC/index.js +0 -59
- package/lib/theme/TOC/styles.module.css +0 -23
- package/lib/theme/TOCInline/index.js +0 -53
- package/lib/theme/TOCInline/styles.module.css +0 -12
- package/lib/theme/TabItem/index.js +0 -32
- package/lib/theme/Tabs/index.js +0 -150
- package/lib/theme/Tabs/styles.module.css +0 -23
- package/lib/theme/ThemeContext.js +0 -21
- package/lib/theme/ThemeProvider/index.js +0 -38
- package/lib/theme/ThemedImage/index.js +0 -49
- package/lib/theme/Toggle/index.js +0 -94
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/Toggle/styles.module.css +0 -17
- package/lib/theme/UserPreferencesContext.js +0 -18
- package/lib/theme/UserPreferencesProvider/index.js +0 -36
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- package/lib/theme/hooks/useDocs.js +0 -18
- package/lib/theme/hooks/useHideableNavbar.js +0 -92
- package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
- package/lib/theme/hooks/useLocationHash.js +0 -28
- package/lib/theme/hooks/useLockBodyScroll.js +0 -26
- package/lib/theme/hooks/usePrismTheme.js +0 -36
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib/theme/hooks/useTabGroupChoice.js +0 -51
- package/lib/theme/hooks/useTheme.js +0 -99
- package/lib/theme/hooks/useThemeContext.js +0 -31
- package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
- package/lib/theme/hooks/useWindowSize.js +0 -55
- package/lib/theme/prism-include-languages.js +0 -39
- package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib-next/__tests__/translations.test.js +0 -128
- package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
- package/lib-next/index.js +0 -221
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useLocationHash.js +0 -20
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/lib-next/translations.js +0 -145
- package/lib-next/validateThemeConfig.js +0 -317
- package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/src/__tests__/translations.test.ts +0 -116
- package/src/__tests__/validateThemeConfig.test.js +0 -333
- package/src/prism-include-languages.js +0 -11
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useLocationHash.ts +0 -25
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/tsconfig.json +0 -12
- package/update-code-translations.js +0 -240
- package/update-code-translations.test.js +0 -33
|
@@ -6,44 +6,32 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
|
+
import clsx from 'clsx';
|
|
10
|
+
import useWindowSize from '@theme/hooks/useWindowSize';
|
|
9
11
|
import DocPaginator from '@theme/DocPaginator';
|
|
10
12
|
import DocVersionBanner from '@theme/DocVersionBanner';
|
|
13
|
+
import DocVersionBadge from '@theme/DocVersionBadge';
|
|
11
14
|
import Seo from '@theme/Seo';
|
|
12
|
-
import LastUpdated from '@theme/LastUpdated';
|
|
13
15
|
import type {Props} from '@theme/DocItem';
|
|
16
|
+
import DocItemFooter from '@theme/DocItemFooter';
|
|
14
17
|
import TOC from '@theme/TOC';
|
|
15
|
-
import
|
|
18
|
+
import TOCCollapsible from '@theme/TOCCollapsible';
|
|
16
19
|
import {MainHeading} from '@theme/Heading';
|
|
17
|
-
|
|
18
|
-
import clsx from 'clsx';
|
|
19
20
|
import styles from './styles.module.css';
|
|
20
|
-
import {
|
|
21
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
21
22
|
|
|
22
|
-
function DocItem(props: Props): JSX.Element {
|
|
23
|
-
const {content: DocContent
|
|
23
|
+
export default function DocItem(props: Props): JSX.Element {
|
|
24
|
+
const {content: DocContent} = props;
|
|
24
25
|
const {metadata, frontMatter} = DocContent;
|
|
25
26
|
const {
|
|
26
27
|
image,
|
|
27
28
|
keywords,
|
|
28
29
|
hide_title: hideTitle,
|
|
29
30
|
hide_table_of_contents: hideTableOfContents,
|
|
31
|
+
toc_min_heading_level: tocMinHeadingLevel,
|
|
32
|
+
toc_max_heading_level: tocMaxHeadingLevel,
|
|
30
33
|
} = frontMatter;
|
|
31
|
-
const {
|
|
32
|
-
description,
|
|
33
|
-
title,
|
|
34
|
-
editUrl,
|
|
35
|
-
lastUpdatedAt,
|
|
36
|
-
formattedLastUpdatedAt,
|
|
37
|
-
lastUpdatedBy,
|
|
38
|
-
} = metadata;
|
|
39
|
-
|
|
40
|
-
const {pluginId} = useActivePlugin({failfast: true});
|
|
41
|
-
const versions = useVersions(pluginId);
|
|
42
|
-
|
|
43
|
-
// If site is not versioned or only one version is included
|
|
44
|
-
// we don't show the version badge
|
|
45
|
-
// See https://github.com/facebook/docusaurus/issues/3362
|
|
46
|
-
const showVersionBadge = versions.length > 1;
|
|
34
|
+
const {description, title} = metadata;
|
|
47
35
|
|
|
48
36
|
// We only add a title if:
|
|
49
37
|
// - user asks to hide it with frontmatter
|
|
@@ -51,6 +39,14 @@ function DocItem(props: Props): JSX.Element {
|
|
|
51
39
|
const shouldAddTitle =
|
|
52
40
|
!hideTitle && typeof DocContent.contentTitle === 'undefined';
|
|
53
41
|
|
|
42
|
+
const windowSize = useWindowSize();
|
|
43
|
+
|
|
44
|
+
const canRenderTOC =
|
|
45
|
+
!hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
|
|
46
|
+
|
|
47
|
+
const renderTocDesktop =
|
|
48
|
+
canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
|
|
49
|
+
|
|
54
50
|
return (
|
|
55
51
|
<>
|
|
56
52
|
<Seo {...{title, description, keywords, image}} />
|
|
@@ -60,16 +56,25 @@ function DocItem(props: Props): JSX.Element {
|
|
|
60
56
|
className={clsx('col', {
|
|
61
57
|
[styles.docItemCol]: !hideTableOfContents,
|
|
62
58
|
})}>
|
|
63
|
-
<DocVersionBanner
|
|
59
|
+
<DocVersionBanner />
|
|
64
60
|
<div className={styles.docItemContainer}>
|
|
65
61
|
<article>
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
<DocVersionBadge />
|
|
63
|
+
|
|
64
|
+
{canRenderTOC && (
|
|
65
|
+
<TOCCollapsible
|
|
66
|
+
toc={DocContent.toc}
|
|
67
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
68
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
69
|
+
className={clsx(
|
|
70
|
+
ThemeClassNames.docs.docTocMobile,
|
|
71
|
+
styles.tocMobile,
|
|
72
|
+
)}
|
|
73
|
+
/>
|
|
70
74
|
)}
|
|
71
75
|
|
|
72
|
-
<div
|
|
76
|
+
<div
|
|
77
|
+
className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
|
|
73
78
|
{/*
|
|
74
79
|
Title can be declared inside md content or declared through frontmatter and added manually
|
|
75
80
|
To make both cases consistent, the added title is added under the same div.markdown block
|
|
@@ -80,36 +85,23 @@ function DocItem(props: Props): JSX.Element {
|
|
|
80
85
|
<DocContent />
|
|
81
86
|
</div>
|
|
82
87
|
|
|
83
|
-
{
|
|
84
|
-
<footer className="row docusaurus-mt-lg">
|
|
85
|
-
<div className="col">
|
|
86
|
-
{editUrl && <EditThisPage editUrl={editUrl} />}
|
|
87
|
-
</div>
|
|
88
|
-
|
|
89
|
-
<div className={clsx('col', styles.lastUpdated)}>
|
|
90
|
-
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
91
|
-
<LastUpdated
|
|
92
|
-
lastUpdatedAt={lastUpdatedAt}
|
|
93
|
-
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
94
|
-
lastUpdatedBy={lastUpdatedBy}
|
|
95
|
-
/>
|
|
96
|
-
)}
|
|
97
|
-
</div>
|
|
98
|
-
</footer>
|
|
99
|
-
)}
|
|
88
|
+
<DocItemFooter {...props} />
|
|
100
89
|
</article>
|
|
101
90
|
|
|
102
|
-
<DocPaginator metadata={metadata} />
|
|
91
|
+
<DocPaginator previous={metadata.previous} next={metadata.next} />
|
|
103
92
|
</div>
|
|
104
93
|
</div>
|
|
105
|
-
{
|
|
94
|
+
{renderTocDesktop && (
|
|
106
95
|
<div className="col col--3">
|
|
107
|
-
<TOC
|
|
96
|
+
<TOC
|
|
97
|
+
toc={DocContent.toc}
|
|
98
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
99
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
100
|
+
className={ThemeClassNames.docs.docTocDesktop}
|
|
101
|
+
/>
|
|
108
102
|
</div>
|
|
109
103
|
)}
|
|
110
104
|
</div>
|
|
111
105
|
</>
|
|
112
106
|
);
|
|
113
107
|
}
|
|
114
|
-
|
|
115
|
-
export default DocItem;
|
|
@@ -5,22 +5,18 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
.docItemContainer article > *:first-child,
|
|
8
9
|
.docItemContainer header + * {
|
|
9
10
|
margin-top: 0;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
margin-top: 0.2rem;
|
|
14
|
-
font-style: italic;
|
|
15
|
-
font-size: smaller;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@media only screen and (min-width: 997px) {
|
|
13
|
+
@media (min-width: 997px) {
|
|
19
14
|
.docItemCol {
|
|
20
15
|
max-width: 75% !important;
|
|
21
16
|
}
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
/* Prevent hydration FOUC, as the mobile TOC needs to be server-rendered */
|
|
19
|
+
.tocMobile {
|
|
20
|
+
display: none;
|
|
25
21
|
}
|
|
26
22
|
}
|
|
@@ -0,0 +1,91 @@
|
|
|
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
|
+
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import clsx from 'clsx';
|
|
10
|
+
|
|
11
|
+
import LastUpdated from '@theme/LastUpdated';
|
|
12
|
+
import type {Props} from '@theme/DocItem';
|
|
13
|
+
import EditThisPage from '@theme/EditThisPage';
|
|
14
|
+
import TagsListInline, {
|
|
15
|
+
Props as TagsListInlineProps,
|
|
16
|
+
} from '@theme/TagsListInline';
|
|
17
|
+
|
|
18
|
+
import styles from './styles.module.css';
|
|
19
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
20
|
+
|
|
21
|
+
function TagsRow(props: TagsListInlineProps) {
|
|
22
|
+
return (
|
|
23
|
+
<div
|
|
24
|
+
className={clsx(
|
|
25
|
+
ThemeClassNames.docs.docFooterTagsRow,
|
|
26
|
+
'row margin-bottom--sm',
|
|
27
|
+
)}>
|
|
28
|
+
<div className="col">
|
|
29
|
+
<TagsListInline {...props} />
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
type EditMetaRowProps = Pick<
|
|
36
|
+
Props['content']['metadata'],
|
|
37
|
+
'editUrl' | 'lastUpdatedAt' | 'lastUpdatedBy' | 'formattedLastUpdatedAt'
|
|
38
|
+
>;
|
|
39
|
+
function EditMetaRow({
|
|
40
|
+
editUrl,
|
|
41
|
+
lastUpdatedAt,
|
|
42
|
+
lastUpdatedBy,
|
|
43
|
+
formattedLastUpdatedAt,
|
|
44
|
+
}: EditMetaRowProps) {
|
|
45
|
+
return (
|
|
46
|
+
<div className={clsx(ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
|
|
47
|
+
<div className="col">{editUrl && <EditThisPage editUrl={editUrl} />}</div>
|
|
48
|
+
|
|
49
|
+
<div className={clsx('col', styles.lastUpdated)}>
|
|
50
|
+
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
51
|
+
<LastUpdated
|
|
52
|
+
lastUpdatedAt={lastUpdatedAt}
|
|
53
|
+
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
54
|
+
lastUpdatedBy={lastUpdatedBy}
|
|
55
|
+
/>
|
|
56
|
+
)}
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default function DocItemFooter(props: Props): JSX.Element | null {
|
|
63
|
+
const {content: DocContent} = props;
|
|
64
|
+
const {metadata} = DocContent;
|
|
65
|
+
const {editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags} =
|
|
66
|
+
metadata;
|
|
67
|
+
|
|
68
|
+
const canDisplayTagsRow = tags.length > 0;
|
|
69
|
+
const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
|
|
70
|
+
|
|
71
|
+
const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
|
|
72
|
+
|
|
73
|
+
if (!canDisplayFooter) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<footer
|
|
79
|
+
className={clsx(ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
|
|
80
|
+
{canDisplayTagsRow && <TagsRow tags={tags} />}
|
|
81
|
+
{canDisplayEditMetaRow && (
|
|
82
|
+
<EditMetaRow
|
|
83
|
+
editUrl={editUrl}
|
|
84
|
+
lastUpdatedAt={lastUpdatedAt}
|
|
85
|
+
lastUpdatedBy={lastUpdatedBy}
|
|
86
|
+
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
87
|
+
/>
|
|
88
|
+
)}
|
|
89
|
+
</footer>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.
|
|
9
|
-
|
|
8
|
+
.lastUpdated {
|
|
9
|
+
margin-top: 0.2rem;
|
|
10
|
+
font-style: italic;
|
|
11
|
+
font-size: smaller;
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
.blogPostDetailsFull {
|
|
17
|
-
flex-direction: column;
|
|
14
|
+
@media (min-width: 997px) {
|
|
15
|
+
.lastUpdated {
|
|
16
|
+
text-align: right;
|
|
17
|
+
}
|
|
18
18
|
}
|
|
@@ -8,9 +8,8 @@
|
|
|
8
8
|
import React, {ReactNode, useState, useCallback} from 'react';
|
|
9
9
|
import {MDXProvider} from '@mdx-js/react';
|
|
10
10
|
|
|
11
|
-
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
12
11
|
import renderRoutes from '@docusaurus/renderRoutes';
|
|
13
|
-
import type {PropVersionMetadata} from '@docusaurus/plugin-content-docs
|
|
12
|
+
import type {PropVersionMetadata} from '@docusaurus/plugin-content-docs';
|
|
14
13
|
import Layout from '@theme/Layout';
|
|
15
14
|
import DocSidebar from '@theme/DocSidebar';
|
|
16
15
|
import MDXComponents from '@theme/MDXComponents';
|
|
@@ -18,50 +17,36 @@ import NotFound from '@theme/NotFound';
|
|
|
18
17
|
import type {DocumentRoute} from '@theme/DocItem';
|
|
19
18
|
import type {Props} from '@theme/DocPage';
|
|
20
19
|
import IconArrow from '@theme/IconArrow';
|
|
20
|
+
import BackToTopButton from '@theme/BackToTopButton';
|
|
21
21
|
import {matchPath} from '@docusaurus/router';
|
|
22
22
|
import {translate} from '@docusaurus/Translate';
|
|
23
23
|
|
|
24
24
|
import clsx from 'clsx';
|
|
25
25
|
import styles from './styles.module.css';
|
|
26
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
ThemeClassNames,
|
|
28
|
+
docVersionSearchTag,
|
|
29
|
+
DocsSidebarProvider,
|
|
30
|
+
useDocsSidebar,
|
|
31
|
+
DocsVersionProvider,
|
|
32
|
+
} from '@docusaurus/theme-common';
|
|
33
|
+
import Head from '@docusaurus/Head';
|
|
27
34
|
|
|
28
35
|
type DocPageContentProps = {
|
|
29
36
|
readonly currentDocRoute: DocumentRoute;
|
|
30
37
|
readonly versionMetadata: PropVersionMetadata;
|
|
31
38
|
readonly children: ReactNode;
|
|
39
|
+
readonly sidebarName: string | undefined;
|
|
32
40
|
};
|
|
33
41
|
|
|
34
|
-
function getSidebar({versionMetadata, currentDocRoute}) {
|
|
35
|
-
function addTrailingSlash(str: string): string {
|
|
36
|
-
return str.endsWith('/') ? str : `${str}/`;
|
|
37
|
-
}
|
|
38
|
-
function removeTrailingSlash(str: string): string {
|
|
39
|
-
return str.endsWith('/') ? str.slice(0, -1) : str;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const {permalinkToSidebar, docsSidebars} = versionMetadata;
|
|
43
|
-
|
|
44
|
-
// With/without trailingSlash, we should always be able to get the appropriate sidebar
|
|
45
|
-
// note: docs plugin permalinks currently never have trailing slashes
|
|
46
|
-
// trailingSlash is handled globally at the framework level, not plugin level
|
|
47
|
-
const sidebarName =
|
|
48
|
-
permalinkToSidebar[currentDocRoute.path] ||
|
|
49
|
-
permalinkToSidebar[addTrailingSlash(currentDocRoute.path)] ||
|
|
50
|
-
permalinkToSidebar[removeTrailingSlash(currentDocRoute.path)];
|
|
51
|
-
|
|
52
|
-
const sidebar = docsSidebars[sidebarName];
|
|
53
|
-
return {sidebar, sidebarName};
|
|
54
|
-
}
|
|
55
|
-
|
|
56
42
|
function DocPageContent({
|
|
57
43
|
currentDocRoute,
|
|
58
44
|
versionMetadata,
|
|
59
45
|
children,
|
|
46
|
+
sidebarName,
|
|
60
47
|
}: DocPageContentProps): JSX.Element {
|
|
61
|
-
const
|
|
48
|
+
const sidebar = useDocsSidebar();
|
|
62
49
|
const {pluginId, version} = versionMetadata;
|
|
63
|
-
const {sidebarName, sidebar} = getSidebar({versionMetadata, currentDocRoute});
|
|
64
|
-
|
|
65
50
|
const [hiddenSidebarContainer, setHiddenSidebarContainer] = useState(false);
|
|
66
51
|
const [hiddenSidebar, setHiddenSidebar] = useState(false);
|
|
67
52
|
const toggleSidebar = useCallback(() => {
|
|
@@ -69,19 +54,20 @@ function DocPageContent({
|
|
|
69
54
|
setHiddenSidebar(false);
|
|
70
55
|
}
|
|
71
56
|
|
|
72
|
-
setHiddenSidebarContainer(!
|
|
57
|
+
setHiddenSidebarContainer((value) => !value);
|
|
73
58
|
}, [hiddenSidebar]);
|
|
74
59
|
|
|
75
60
|
return (
|
|
76
61
|
<Layout
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
searchMetadatas={{
|
|
62
|
+
wrapperClassName={ThemeClassNames.wrapper.docsPages}
|
|
63
|
+
pageClassName={ThemeClassNames.page.docsDocPage}
|
|
64
|
+
searchMetadata={{
|
|
81
65
|
version,
|
|
82
66
|
tag: docVersionSearchTag(pluginId, version),
|
|
83
67
|
}}>
|
|
84
68
|
<div className={styles.docPage}>
|
|
69
|
+
<BackToTopButton />
|
|
70
|
+
|
|
85
71
|
{sidebar && (
|
|
86
72
|
<aside
|
|
87
73
|
className={clsx(styles.docSidebarContainer, {
|
|
@@ -106,9 +92,6 @@ function DocPageContent({
|
|
|
106
92
|
}
|
|
107
93
|
sidebar={sidebar}
|
|
108
94
|
path={currentDocRoute.path}
|
|
109
|
-
sidebarCollapsible={
|
|
110
|
-
siteConfig.themeConfig?.sidebarCollapsible ?? true
|
|
111
|
-
}
|
|
112
95
|
onCollapse={toggleSidebar}
|
|
113
96
|
isHidden={hiddenSidebar}
|
|
114
97
|
/>
|
|
@@ -168,14 +151,33 @@ function DocPage(props: Props): JSX.Element {
|
|
|
168
151
|
matchPath(location.pathname, docRoute),
|
|
169
152
|
);
|
|
170
153
|
if (!currentDocRoute) {
|
|
171
|
-
return <NotFound
|
|
154
|
+
return <NotFound />;
|
|
172
155
|
}
|
|
156
|
+
|
|
157
|
+
// For now, the sidebarName is added as route config: not ideal!
|
|
158
|
+
const sidebarName = currentDocRoute.sidebar;
|
|
159
|
+
|
|
160
|
+
const sidebar = sidebarName
|
|
161
|
+
? versionMetadata.docsSidebars[sidebarName]
|
|
162
|
+
: null;
|
|
163
|
+
|
|
173
164
|
return (
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
165
|
+
<>
|
|
166
|
+
<Head>
|
|
167
|
+
{/* TODO we should add a core addRoute({htmlClassName}) generic plugin option */}
|
|
168
|
+
<html className={versionMetadata.className} />
|
|
169
|
+
</Head>
|
|
170
|
+
<DocsVersionProvider version={versionMetadata}>
|
|
171
|
+
<DocsSidebarProvider sidebar={sidebar}>
|
|
172
|
+
<DocPageContent
|
|
173
|
+
currentDocRoute={currentDocRoute}
|
|
174
|
+
versionMetadata={versionMetadata}
|
|
175
|
+
sidebarName={sidebarName}>
|
|
176
|
+
{renderRoutes(docRoutes, {versionMetadata})}
|
|
177
|
+
</DocPageContent>
|
|
178
|
+
</DocsSidebarProvider>
|
|
179
|
+
</DocsVersionProvider>
|
|
180
|
+
</>
|
|
179
181
|
);
|
|
180
182
|
}
|
|
181
183
|
|
|
@@ -20,6 +20,10 @@
|
|
|
20
20
|
width: 100%;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
.docSidebarContainer {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
23
27
|
@media (min-width: 997px) {
|
|
24
28
|
.docMainContainer {
|
|
25
29
|
flex-grow: 1;
|
|
@@ -31,6 +35,7 @@
|
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
.docSidebarContainer {
|
|
38
|
+
display: block;
|
|
34
39
|
width: var(--doc-sidebar-width);
|
|
35
40
|
margin-top: calc(-1 * var(--ifm-navbar-height));
|
|
36
41
|
border-right: 1px solid var(--ifm-toc-border-color);
|
|
@@ -78,9 +83,3 @@
|
|
|
78
83
|
) !important;
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
|
-
|
|
82
|
-
@media (max-width: 996px) {
|
|
83
|
-
.docSidebarContainer {
|
|
84
|
-
display: none;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
9
|
+
import {translate} from '@docusaurus/Translate';
|
|
10
|
+
import DocPaginatorNavLink from '@theme/DocPaginatorNavLink';
|
|
11
11
|
import type {Props} from '@theme/DocPaginator';
|
|
12
12
|
|
|
13
13
|
function DocPaginator(props: Props): JSX.Element {
|
|
14
|
-
const {
|
|
14
|
+
const {previous, next} = props;
|
|
15
15
|
|
|
16
16
|
return (
|
|
17
17
|
<nav
|
|
@@ -22,38 +22,10 @@ function DocPaginator(props: Props): JSX.Element {
|
|
|
22
22
|
description: 'The ARIA label for the docs pagination',
|
|
23
23
|
})}>
|
|
24
24
|
<div className="pagination-nav__item">
|
|
25
|
-
{
|
|
26
|
-
<Link
|
|
27
|
-
className="pagination-nav__link"
|
|
28
|
-
to={metadata.previous.permalink}>
|
|
29
|
-
<div className="pagination-nav__sublabel">
|
|
30
|
-
<Translate
|
|
31
|
-
id="theme.docs.paginator.previous"
|
|
32
|
-
description="The label used to navigate to the previous doc">
|
|
33
|
-
Previous
|
|
34
|
-
</Translate>
|
|
35
|
-
</div>
|
|
36
|
-
<div className="pagination-nav__label">
|
|
37
|
-
« {metadata.previous.title}
|
|
38
|
-
</div>
|
|
39
|
-
</Link>
|
|
40
|
-
)}
|
|
25
|
+
{previous && <DocPaginatorNavLink navLink={previous} />}
|
|
41
26
|
</div>
|
|
42
27
|
<div className="pagination-nav__item pagination-nav__item--next">
|
|
43
|
-
{
|
|
44
|
-
<Link className="pagination-nav__link" to={metadata.next.permalink}>
|
|
45
|
-
<div className="pagination-nav__sublabel">
|
|
46
|
-
<Translate
|
|
47
|
-
id="theme.docs.paginator.next"
|
|
48
|
-
description="The label used to navigate to the next doc">
|
|
49
|
-
Next
|
|
50
|
-
</Translate>
|
|
51
|
-
</div>
|
|
52
|
-
<div className="pagination-nav__label">
|
|
53
|
-
{metadata.next.title} »
|
|
54
|
-
</div>
|
|
55
|
-
</Link>
|
|
56
|
-
)}
|
|
28
|
+
{next && <DocPaginatorNavLink navLink={next} next />}
|
|
57
29
|
</div>
|
|
58
30
|
</nav>
|
|
59
31
|
);
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
|
|
8
|
+
import React from 'react';
|
|
9
|
+
import clsx from 'clsx';
|
|
10
|
+
import Link from '@docusaurus/Link';
|
|
11
|
+
import Translate from '@docusaurus/Translate';
|
|
12
|
+
import type {Props} from '@theme/DocPaginatorNavLink';
|
|
13
|
+
|
|
14
|
+
function DocPaginatorNavLink(props: Props): JSX.Element {
|
|
15
|
+
const {navLink, next} = props;
|
|
16
|
+
return (
|
|
17
|
+
<Link className={clsx('pagination-nav__link')} to={navLink.permalink}>
|
|
18
|
+
<div className="pagination-nav__sublabel">
|
|
19
|
+
{next ? (
|
|
20
|
+
<Translate
|
|
21
|
+
id="theme.docs.paginator.next"
|
|
22
|
+
description="The label used to navigate to the next doc">
|
|
23
|
+
Next
|
|
24
|
+
</Translate>
|
|
25
|
+
) : (
|
|
26
|
+
<Translate
|
|
27
|
+
id="theme.docs.paginator.previous"
|
|
28
|
+
description="The label used to navigate to the previous doc">
|
|
29
|
+
Previous
|
|
30
|
+
</Translate>
|
|
31
|
+
)}
|
|
32
|
+
</div>
|
|
33
|
+
<div className="pagination-nav__label">{navLink.title}</div>
|
|
34
|
+
</Link>
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export default DocPaginatorNavLink;
|