@docusaurus/theme-classic 2.0.0-beta.1 → 2.0.0-beta.10
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/__tests__/validateThemeConfig.test.js +277 -3
- package/lib/admonitions.css +35 -0
- package/lib/deps.d.ts +13 -0
- package/lib/index.js +41 -16
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme/AnnouncementBar/index.js +10 -16
- package/lib/theme/AnnouncementBar/styles.module.css +25 -30
- package/lib/theme/BackToTopButton/index.js +140 -0
- package/lib/theme/BackToTopButton/styles.module.css +42 -0
- package/lib/theme/BlogArchivePage/index.js +89 -0
- package/lib/theme/BlogLayout/index.js +51 -0
- package/lib/theme/BlogListPage/index.js +10 -21
- package/lib/theme/BlogPostAuthor/index.js +51 -0
- package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib/theme/BlogPostAuthors/index.js +47 -0
- package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib/theme/BlogPostItem/index.js +58 -67
- package/lib/theme/BlogPostPage/index.js +37 -24
- package/lib/theme/BlogSidebar/index.js +5 -7
- package/lib/theme/BlogSidebar/styles.module.css +2 -2
- package/lib/theme/BlogTagsListPage/index.js +8 -44
- package/lib/theme/BlogTagsPostsPage/index.js +24 -38
- package/lib/theme/CodeBlock/index.js +18 -138
- package/lib/theme/CodeBlock/styles.module.css +6 -9
- package/lib/theme/Details/index.js +30 -0
- package/lib/theme/Details/styles.module.css +13 -0
- package/lib/theme/DocCard/index.js +84 -0
- package/lib/theme/DocCard/styles.module.css +43 -0
- package/lib/theme/DocCardList/index.js +28 -0
- package/lib/theme/DocCategoryGeneratedIndexPage/index.js +57 -0
- package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
- package/lib/theme/DocItem/index.js +29 -46
- package/lib/theme/DocItem/styles.module.css +5 -9
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +35 -52
- package/lib/theme/DocPage/styles.module.css +8 -23
- package/lib/theme/DocPaginator/index.js +6 -7
- package/lib/theme/DocSidebar/index.js +53 -235
- package/lib/theme/DocSidebar/styles.module.css +0 -18
- package/lib/theme/DocSidebarItem/index.js +209 -0
- package/lib/theme/DocSidebarItem/styles.module.css +19 -0
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/DocVersionBadge/index.js +34 -0
- package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +39 -20
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/ErrorPageContent.js +43 -0
- package/lib/theme/Footer/index.js +16 -5
- package/lib/theme/Heading/index.js +17 -22
- package/lib/theme/Heading/styles.css +5 -6
- package/lib/theme/Heading/styles.module.css +9 -5
- package/lib/theme/IconArrow/index.js +2 -2
- package/lib/theme/IconClose/index.js +31 -0
- package/lib/theme/IconEdit/index.js +3 -3
- package/lib/theme/IconExternalLink/index.js +3 -3
- package/lib/theme/IconLanguage/index.js +3 -3
- package/lib/theme/IconMenu/index.js +3 -3
- package/lib/theme/LastUpdated/index.js +4 -2
- package/lib/theme/Layout/index.js +5 -1
- package/lib/theme/LayoutHead/index.js +22 -17
- package/lib/theme/LayoutProviders/index.js +11 -5
- package/lib/theme/Logo/index.js +16 -14
- package/lib/theme/MDXComponents/index.js +45 -4
- package/lib/theme/MDXComponents/styles.css +11 -0
- package/lib/theme/MDXPage/index.js +2 -1
- package/lib/theme/Navbar/index.js +162 -42
- package/lib/theme/Navbar/styles.module.css +10 -3
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
- package/lib/theme/NavbarItem/DocNavbarItem.js +7 -8
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
- package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
- package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +6 -10
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +31 -11
- package/lib/theme/{SearchMetadatas → SearchMetadata}/index.js +2 -2
- package/lib/theme/Seo/index.js +10 -7
- package/lib/theme/SkipToContent/index.js +12 -4
- package/lib/theme/SkipToContent/styles.module.css +1 -0
- package/lib/theme/TOC/index.js +9 -29
- package/lib/theme/TOC/styles.module.css +1 -1
- package/lib/theme/TOCCollapsible/index.js +53 -0
- package/lib/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib/theme/TOCInline/index.js +7 -27
- package/lib/theme/TOCItems/index.js +78 -0
- package/lib/theme/Tabs/__tests__/index.test.js +123 -0
- package/lib/theme/Tabs/index.js +73 -50
- package/lib/theme/Tabs/styles.module.css +0 -13
- package/lib/theme/Tag/index.js +40 -0
- package/lib/theme/Tag/styles.module.css +70 -0
- package/lib/theme/TagsListByLetter/index.js +48 -0
- package/lib/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib/theme/TagsListInline/index.js +44 -0
- package/lib/theme/TagsListInline/styles.module.css +15 -0
- package/lib/theme/ThemeProvider/index.js +8 -3
- package/lib/theme/ThemedImage/index.js +6 -7
- package/lib/theme/Toggle/index.js +41 -44
- package/lib/theme/Toggle/styles.module.css +91 -3
- package/lib/theme/UserPreferencesProvider/index.js +9 -12
- package/lib/theme/hooks/useHideableNavbar.js +14 -32
- package/lib/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib/theme/hooks/useTheme.js +3 -5
- package/lib/theme/hooks/useWindowSize.js +33 -20
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/theme-classic.d.ts +806 -0
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +0 -599
- package/lib/validateThemeConfig.js +230 -246
- package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
- package/lib-next/admonitions.css +35 -0
- package/lib-next/deps.d.ts +13 -0
- package/lib-next/index.js +45 -13
- package/lib-next/prism-include-languages.js +0 -2
- package/lib-next/theme/AnnouncementBar/index.js +9 -18
- package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
- 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-next/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
- 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 +17 -149
- package/lib-next/theme/CodeBlock/styles.module.css +6 -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 -56
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
- package/lib-next/theme/DocPage/index.js +46 -47
- package/lib-next/theme/DocPage/styles.module.css +8 -23
- package/lib-next/theme/DocPaginator/index.js +7 -11
- package/lib-next/theme/DocSidebar/index.js +69 -295
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +217 -0
- package/lib-next/theme/DocSidebarItem/styles.module.css +19 -0
- 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/{DocVersionSuggestions → DocVersionBanner}/index.js +51 -36
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/index.js +27 -5
- package/lib-next/theme/Heading/index.js +25 -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 +17 -6
- package/lib-next/theme/Logo/index.js +25 -21
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/lib-next/theme/MDXComponents/styles.css +11 -0
- 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 +159 -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 +7 -8
- package/lib-next/theme/SkipToContent/styles.module.css +1 -0
- 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 +91 -43
- 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 +7 -8
- 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 -10
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
- 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/lib-next/theme-classic.d.ts +806 -0
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +0 -599
- package/lib-next/validateThemeConfig.js +141 -114
- package/package.json +28 -25
- package/src/__tests__/validateThemeConfig.test.js +277 -3
- package/src/admonitions.css +35 -0
- package/src/deps.d.ts +13 -0
- package/src/index.ts +55 -22
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/AnnouncementBar/index.tsx +10 -17
- package/src/theme/AnnouncementBar/styles.module.css +25 -30
- 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/src/theme/BlogPostAuthor/styles.module.css +12 -0
- 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 +21 -151
- package/src/theme/CodeBlock/styles.module.css +6 -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 -56
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +44 -42
- package/src/theme/DocPage/styles.module.css +8 -23
- package/src/theme/DocPaginator/index.tsx +9 -13
- package/src/theme/DocSidebar/index.tsx +80 -307
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +242 -0
- package/src/theme/DocSidebarItem/styles.module.css +19 -0
- 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/{DocVersionSuggestions → DocVersionBanner}/index.tsx +74 -44
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/index.tsx +30 -6
- package/src/theme/Heading/index.tsx +25 -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 +17 -6
- 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 +181 -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 +7 -8
- package/src/theme/SkipToContent/styles.module.css +1 -0
- 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/__tests__/index.test.tsx +129 -0
- package/src/theme/Tabs/index.tsx +93 -49
- 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 +8 -8
- package/src/theme/Toggle/index.tsx +36 -43
- package/src/theme/Toggle/styles.module.css +91 -3
- package/src/theme/UserPreferencesProvider/index.tsx +9 -11
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +4 -4
- 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 +806 -0
- package/src/translations.ts +8 -10
- package/src/types.d.ts +0 -599
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +151 -94
- package/tsconfig.json +1 -2
- 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/theme/Toggle/styles.css +0 -103
- package/lib/theme/hooks/useAnnouncementBar.js +0 -63
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useAnnouncementBar.ts +0 -58
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/update-code-translations.js +0 -239
- package/update-code-translations.test.js +0 -33
|
@@ -0,0 +1,80 @@
|
|
|
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 React from 'react';
|
|
8
|
+
import Link from '@docusaurus/Link';
|
|
9
|
+
import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common';
|
|
10
|
+
import clsx from 'clsx';
|
|
11
|
+
import styles from './styles.module.css';
|
|
12
|
+
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
13
|
+
|
|
14
|
+
function CardContainer({href, children}) {
|
|
15
|
+
const className = clsx(
|
|
16
|
+
'card margin-bottom--lg padding--lg',
|
|
17
|
+
styles.cardContainer,
|
|
18
|
+
href && styles.cardContainerLink,
|
|
19
|
+
);
|
|
20
|
+
return href ? (
|
|
21
|
+
<Link href={href} className={className}>
|
|
22
|
+
{children}
|
|
23
|
+
</Link>
|
|
24
|
+
) : (
|
|
25
|
+
<div className={className}>{children}</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function CardLayout({href, icon, title, description}) {
|
|
30
|
+
return (
|
|
31
|
+
<CardContainer href={href}>
|
|
32
|
+
<h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
|
|
33
|
+
{icon} {title}
|
|
34
|
+
</h2>
|
|
35
|
+
<div
|
|
36
|
+
className={clsx('text--truncate', styles.cardDescription)}
|
|
37
|
+
title={description}>
|
|
38
|
+
{description}
|
|
39
|
+
</div>
|
|
40
|
+
</CardContainer>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
function CardCategory({item}) {
|
|
45
|
+
const href = findFirstCategoryLink(item);
|
|
46
|
+
return (
|
|
47
|
+
<CardLayout
|
|
48
|
+
href={href}
|
|
49
|
+
icon="🗃️"
|
|
50
|
+
title={item.label}
|
|
51
|
+
description={`${item.items.length} items`}
|
|
52
|
+
/>
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function CardLink({item}) {
|
|
57
|
+
const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
|
|
58
|
+
const doc = useDocById(item.docId ?? undefined);
|
|
59
|
+
return (
|
|
60
|
+
<CardLayout
|
|
61
|
+
href={item.href}
|
|
62
|
+
icon={icon}
|
|
63
|
+
title={item.label}
|
|
64
|
+
description={doc?.description}
|
|
65
|
+
/>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export default function DocCard({item}) {
|
|
70
|
+
switch (item.type) {
|
|
71
|
+
case 'link':
|
|
72
|
+
return <CardLink item={item} />;
|
|
73
|
+
|
|
74
|
+
case 'category':
|
|
75
|
+
return <CardCategory item={item} />;
|
|
76
|
+
|
|
77
|
+
default:
|
|
78
|
+
throw new Error(`unknown item type ${JSON.stringify(item)}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
.cardContainer {
|
|
9
|
+
height: 8rem;
|
|
10
|
+
|
|
11
|
+
color: var(--ifm-color-emphasis-800);
|
|
12
|
+
--ifm-link-color: var(--ifm-color-emphasis-800);
|
|
13
|
+
--ifm-link-hover-color: var(--ifm-color-emphasis-800);
|
|
14
|
+
--ifm-link-hover-decoration: none;
|
|
15
|
+
|
|
16
|
+
/* box-shadow: var(--ifm-global-shadow-lw); */
|
|
17
|
+
box-shadow: 0 1.5px 3px 0 rgba(0, 0, 0, 0.15);
|
|
18
|
+
border: 1px solid var(--ifm-color-emphasis-200);
|
|
19
|
+
transition: box-shadow var(--ifm-transition-fast) ease,
|
|
20
|
+
background-color var(--ifm-transition-fast) ease;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.cardContainer.cardContainerLink:hover {
|
|
24
|
+
/* box-shadow: var(--ifm-global-shadow-md); */
|
|
25
|
+
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);
|
|
26
|
+
}
|
|
27
|
+
html[data-theme='dark'] .cardContainer.cardContainerLink:hover {
|
|
28
|
+
--ifm-card-background-color: #2d2d2d; /* original, non-hovered color is #242526 */
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.cardContainer:not(.cardContainerLink) {
|
|
32
|
+
cursor: not-allowed;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.cardTitle {
|
|
36
|
+
font-size: 1.2rem;
|
|
37
|
+
min-height: 1.2rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.cardDescription {
|
|
41
|
+
font-size: 0.8rem;
|
|
42
|
+
min-height: 0.8rem;
|
|
43
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 React from 'react';
|
|
8
|
+
import DocCard from '@theme/DocCard';
|
|
9
|
+
export default function DocCardList({items}) {
|
|
10
|
+
return (
|
|
11
|
+
<div className="row">
|
|
12
|
+
{items.map((item, index) => (
|
|
13
|
+
<article key={index} className="col col--6">
|
|
14
|
+
<DocCard item={item} />
|
|
15
|
+
</article>
|
|
16
|
+
))}
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
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 React from 'react';
|
|
8
|
+
import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
|
9
|
+
import DocCardList from '@theme/DocCardList';
|
|
10
|
+
import DocPaginator from '@theme/DocPaginator';
|
|
11
|
+
import Seo from '@theme/Seo';
|
|
12
|
+
import DocVersionBanner from '@theme/DocVersionBanner';
|
|
13
|
+
import DocVersionBadge from '@theme/DocVersionBadge';
|
|
14
|
+
import {MainHeading} from '@theme/Heading';
|
|
15
|
+
import styles from './styles.module.css';
|
|
16
|
+
export default function DocCategoryGeneratedIndexPage({
|
|
17
|
+
categoryGeneratedIndex,
|
|
18
|
+
}) {
|
|
19
|
+
const category = useCurrentSidebarCategory();
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<Seo
|
|
23
|
+
title={categoryGeneratedIndex.title}
|
|
24
|
+
description={categoryGeneratedIndex.description}
|
|
25
|
+
/>
|
|
26
|
+
<div className={styles.generatedIndexPage}>
|
|
27
|
+
<DocVersionBanner />
|
|
28
|
+
<DocVersionBadge />
|
|
29
|
+
<header>
|
|
30
|
+
<MainHeading className={styles.title}>
|
|
31
|
+
{categoryGeneratedIndex.title}
|
|
32
|
+
</MainHeading>
|
|
33
|
+
{categoryGeneratedIndex.description && (
|
|
34
|
+
<p>{categoryGeneratedIndex.description}</p>
|
|
35
|
+
)}
|
|
36
|
+
</header>
|
|
37
|
+
<main className="margin-top--lg">
|
|
38
|
+
<DocCardList items={category.items} />
|
|
39
|
+
</main>
|
|
40
|
+
<footer className="margin-top--lg">
|
|
41
|
+
<DocPaginator
|
|
42
|
+
previous={categoryGeneratedIndex.navigation.previous}
|
|
43
|
+
next={categoryGeneratedIndex.navigation.next}
|
|
44
|
+
/>
|
|
45
|
+
</footer>
|
|
46
|
+
</div>
|
|
47
|
+
</>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
@media (min-width: 997px) {
|
|
9
|
+
.generatedIndexPage {
|
|
10
|
+
max-width: 75% !important;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Duplicated from .markdown h1 */
|
|
15
|
+
.title {
|
|
16
|
+
--ifm-h1-font-size: 3rem;
|
|
17
|
+
margin-bottom: calc(1.25 * var(--ifm-leading));
|
|
18
|
+
}
|
|
@@ -5,22 +5,19 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
import React from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import useWindowSize from '@theme/hooks/useWindowSize';
|
|
8
10
|
import DocPaginator from '@theme/DocPaginator';
|
|
9
|
-
import
|
|
11
|
+
import DocVersionBanner from '@theme/DocVersionBanner';
|
|
12
|
+
import DocVersionBadge from '@theme/DocVersionBadge';
|
|
10
13
|
import Seo from '@theme/Seo';
|
|
11
|
-
import
|
|
14
|
+
import DocItemFooter from '@theme/DocItemFooter';
|
|
12
15
|
import TOC from '@theme/TOC';
|
|
13
|
-
import
|
|
16
|
+
import TOCCollapsible from '@theme/TOCCollapsible';
|
|
14
17
|
import {MainHeading} from '@theme/Heading';
|
|
15
|
-
import clsx from 'clsx';
|
|
16
18
|
import styles from './styles.module.css';
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
useVersions,
|
|
20
|
-
useActiveVersion,
|
|
21
|
-
} from '@theme/hooks/useDocs';
|
|
22
|
-
|
|
23
|
-
function DocItem(props) {
|
|
19
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
20
|
+
export default function DocItem(props) {
|
|
24
21
|
const {content: DocContent} = props;
|
|
25
22
|
const {metadata, frontMatter} = DocContent;
|
|
26
23
|
const {
|
|
@@ -28,29 +25,20 @@ function DocItem(props) {
|
|
|
28
25
|
keywords,
|
|
29
26
|
hide_title: hideTitle,
|
|
30
27
|
hide_table_of_contents: hideTableOfContents,
|
|
28
|
+
toc_min_heading_level: tocMinHeadingLevel,
|
|
29
|
+
toc_max_heading_level: tocMaxHeadingLevel,
|
|
31
30
|
} = frontMatter;
|
|
32
|
-
const {
|
|
33
|
-
description,
|
|
34
|
-
title,
|
|
35
|
-
editUrl,
|
|
36
|
-
lastUpdatedAt,
|
|
37
|
-
formattedLastUpdatedAt,
|
|
38
|
-
lastUpdatedBy,
|
|
39
|
-
} = metadata;
|
|
40
|
-
const {pluginId} = useActivePlugin({
|
|
41
|
-
failfast: true,
|
|
42
|
-
});
|
|
43
|
-
const versions = useVersions(pluginId);
|
|
44
|
-
const version = useActiveVersion(pluginId); // If site is not versioned or only one version is included
|
|
45
|
-
// we don't show the version badge
|
|
46
|
-
// See https://github.com/facebook/docusaurus/issues/3362
|
|
47
|
-
|
|
48
|
-
const showVersionBadge = versions.length > 1; // We only add a title if:
|
|
31
|
+
const {description, title} = metadata; // We only add a title if:
|
|
49
32
|
// - user asks to hide it with frontmatter
|
|
50
33
|
// - the markdown content does not already contain a top-level h1 heading
|
|
51
34
|
|
|
52
35
|
const shouldAddTitle =
|
|
53
36
|
!hideTitle && typeof DocContent.contentTitle === 'undefined';
|
|
37
|
+
const windowSize = useWindowSize();
|
|
38
|
+
const canRenderTOC =
|
|
39
|
+
!hideTableOfContents && DocContent.toc && DocContent.toc.length > 0;
|
|
40
|
+
const renderTocDesktop =
|
|
41
|
+
canRenderTOC && (windowSize === 'desktop' || windowSize === 'ssr');
|
|
54
42
|
return (
|
|
55
43
|
<>
|
|
56
44
|
<Seo
|
|
@@ -67,16 +55,25 @@ function DocItem(props) {
|
|
|
67
55
|
className={clsx('col', {
|
|
68
56
|
[styles.docItemCol]: !hideTableOfContents,
|
|
69
57
|
})}>
|
|
70
|
-
<
|
|
58
|
+
<DocVersionBanner />
|
|
71
59
|
<div className={styles.docItemContainer}>
|
|
72
60
|
<article>
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
61
|
+
<DocVersionBadge />
|
|
62
|
+
|
|
63
|
+
{canRenderTOC && (
|
|
64
|
+
<TOCCollapsible
|
|
65
|
+
toc={DocContent.toc}
|
|
66
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
67
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
68
|
+
className={clsx(
|
|
69
|
+
ThemeClassNames.docs.docTocMobile,
|
|
70
|
+
styles.tocMobile,
|
|
71
|
+
)}
|
|
72
|
+
/>
|
|
77
73
|
)}
|
|
78
74
|
|
|
79
|
-
<div
|
|
75
|
+
<div
|
|
76
|
+
className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
|
|
80
77
|
{/*
|
|
81
78
|
Title can be declared inside md content or declared through frontmatter and added manually
|
|
82
79
|
To make both cases consistent, the added title is added under the same div.markdown block
|
|
@@ -87,36 +84,23 @@ function DocItem(props) {
|
|
|
87
84
|
<DocContent />
|
|
88
85
|
</div>
|
|
89
86
|
|
|
90
|
-
{
|
|
91
|
-
<footer className="row docusaurus-mt-lg">
|
|
92
|
-
<div className="col">
|
|
93
|
-
{editUrl && <EditThisPage editUrl={editUrl} />}
|
|
94
|
-
</div>
|
|
95
|
-
|
|
96
|
-
<div className={clsx('col', styles.lastUpdated)}>
|
|
97
|
-
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
98
|
-
<LastUpdated
|
|
99
|
-
lastUpdatedAt={lastUpdatedAt}
|
|
100
|
-
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
101
|
-
lastUpdatedBy={lastUpdatedBy}
|
|
102
|
-
/>
|
|
103
|
-
)}
|
|
104
|
-
</div>
|
|
105
|
-
</footer>
|
|
106
|
-
)}
|
|
87
|
+
<DocItemFooter {...props} />
|
|
107
88
|
</article>
|
|
108
89
|
|
|
109
|
-
<DocPaginator metadata={metadata} />
|
|
90
|
+
<DocPaginator previous={metadata.previous} next={metadata.next} />
|
|
110
91
|
</div>
|
|
111
92
|
</div>
|
|
112
|
-
{
|
|
93
|
+
{renderTocDesktop && (
|
|
113
94
|
<div className="col col--3">
|
|
114
|
-
<TOC
|
|
95
|
+
<TOC
|
|
96
|
+
toc={DocContent.toc}
|
|
97
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
98
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
99
|
+
className={ThemeClassNames.docs.docTocDesktop}
|
|
100
|
+
/>
|
|
115
101
|
</div>
|
|
116
102
|
)}
|
|
117
103
|
</div>
|
|
118
104
|
</>
|
|
119
105
|
);
|
|
120
106
|
}
|
|
121
|
-
|
|
122
|
-
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,79 @@
|
|
|
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 React from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import LastUpdated from '@theme/LastUpdated';
|
|
10
|
+
import EditThisPage from '@theme/EditThisPage';
|
|
11
|
+
import TagsListInline from '@theme/TagsListInline';
|
|
12
|
+
import styles from './styles.module.css';
|
|
13
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
14
|
+
|
|
15
|
+
function TagsRow(props) {
|
|
16
|
+
return (
|
|
17
|
+
<div
|
|
18
|
+
className={clsx(
|
|
19
|
+
ThemeClassNames.docs.docFooterTagsRow,
|
|
20
|
+
'row margin-bottom--sm',
|
|
21
|
+
)}>
|
|
22
|
+
<div className="col">
|
|
23
|
+
<TagsListInline {...props} />
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function EditMetaRow({
|
|
30
|
+
editUrl,
|
|
31
|
+
lastUpdatedAt,
|
|
32
|
+
lastUpdatedBy,
|
|
33
|
+
formattedLastUpdatedAt,
|
|
34
|
+
}) {
|
|
35
|
+
return (
|
|
36
|
+
<div className={clsx(ThemeClassNames.docs.docFooterEditMetaRow, 'row')}>
|
|
37
|
+
<div className="col">{editUrl && <EditThisPage editUrl={editUrl} />}</div>
|
|
38
|
+
|
|
39
|
+
<div className={clsx('col', styles.lastUpdated)}>
|
|
40
|
+
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
41
|
+
<LastUpdated
|
|
42
|
+
lastUpdatedAt={lastUpdatedAt}
|
|
43
|
+
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
44
|
+
lastUpdatedBy={lastUpdatedBy}
|
|
45
|
+
/>
|
|
46
|
+
)}
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default function DocItemFooter(props) {
|
|
53
|
+
const {content: DocContent} = props;
|
|
54
|
+
const {metadata} = DocContent;
|
|
55
|
+
const {editUrl, lastUpdatedAt, formattedLastUpdatedAt, lastUpdatedBy, tags} =
|
|
56
|
+
metadata;
|
|
57
|
+
const canDisplayTagsRow = tags.length > 0;
|
|
58
|
+
const canDisplayEditMetaRow = !!(editUrl || lastUpdatedAt || lastUpdatedBy);
|
|
59
|
+
const canDisplayFooter = canDisplayTagsRow || canDisplayEditMetaRow;
|
|
60
|
+
|
|
61
|
+
if (!canDisplayFooter) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return (
|
|
66
|
+
<footer
|
|
67
|
+
className={clsx(ThemeClassNames.docs.docFooter, 'docusaurus-mt-lg')}>
|
|
68
|
+
{canDisplayTagsRow && <TagsRow tags={tags} />}
|
|
69
|
+
{canDisplayEditMetaRow && (
|
|
70
|
+
<EditMetaRow
|
|
71
|
+
editUrl={editUrl}
|
|
72
|
+
lastUpdatedAt={lastUpdatedAt}
|
|
73
|
+
lastUpdatedBy={lastUpdatedBy}
|
|
74
|
+
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
75
|
+
/>
|
|
76
|
+
)}
|
|
77
|
+
</footer>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
.lastUpdated {
|
|
9
|
+
margin-top: 0.2rem;
|
|
10
|
+
font-style: italic;
|
|
11
|
+
font-size: smaller;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@media (min-width: 997px) {
|
|
15
|
+
.lastUpdated {
|
|
16
|
+
text-align: right;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -6,50 +6,34 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import React, {useState, useCallback} from 'react';
|
|
8
8
|
import {MDXProvider} from '@mdx-js/react';
|
|
9
|
-
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
10
9
|
import renderRoutes from '@docusaurus/renderRoutes';
|
|
11
10
|
import Layout from '@theme/Layout';
|
|
12
11
|
import DocSidebar from '@theme/DocSidebar';
|
|
13
12
|
import MDXComponents from '@theme/MDXComponents';
|
|
14
13
|
import NotFound from '@theme/NotFound';
|
|
15
14
|
import IconArrow from '@theme/IconArrow';
|
|
15
|
+
import BackToTopButton from '@theme/BackToTopButton';
|
|
16
16
|
import {matchPath} from '@docusaurus/router';
|
|
17
17
|
import {translate} from '@docusaurus/Translate';
|
|
18
18
|
import clsx from 'clsx';
|
|
19
19
|
import styles from './styles.module.css';
|
|
20
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
ThemeClassNames,
|
|
22
|
+
docVersionSearchTag,
|
|
23
|
+
DocsSidebarProvider,
|
|
24
|
+
useDocsSidebar,
|
|
25
|
+
DocsVersionProvider,
|
|
26
|
+
} from '@docusaurus/theme-common';
|
|
27
|
+
import Head from '@docusaurus/Head';
|
|
21
28
|
|
|
22
|
-
function
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
const {permalinkToSidebar, docsSidebars} = versionMetadata; // With/without trailingSlash, we should always be able to get the appropriate sidebar
|
|
32
|
-
// note: docs plugin permalinks currently never have trailing slashes
|
|
33
|
-
// trailingSlash is handled globally at the framework level, not plugin level
|
|
34
|
-
|
|
35
|
-
const sidebarName =
|
|
36
|
-
permalinkToSidebar[currentDocRoute.path] ||
|
|
37
|
-
permalinkToSidebar[addTrailingSlash(currentDocRoute.path)] ||
|
|
38
|
-
permalinkToSidebar[removeTrailingSlash(currentDocRoute.path)];
|
|
39
|
-
const sidebar = docsSidebars[sidebarName];
|
|
40
|
-
return {
|
|
41
|
-
sidebar,
|
|
42
|
-
sidebarName,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function DocPageContent({currentDocRoute, versionMetadata, children}) {
|
|
47
|
-
const {siteConfig, isClient} = useDocusaurusContext();
|
|
29
|
+
function DocPageContent({
|
|
30
|
+
currentDocRoute,
|
|
31
|
+
versionMetadata,
|
|
32
|
+
children,
|
|
33
|
+
sidebarName,
|
|
34
|
+
}) {
|
|
35
|
+
const sidebar = useDocsSidebar();
|
|
48
36
|
const {pluginId, version} = versionMetadata;
|
|
49
|
-
const {sidebarName, sidebar} = getSidebar({
|
|
50
|
-
versionMetadata,
|
|
51
|
-
currentDocRoute,
|
|
52
|
-
});
|
|
53
37
|
const [hiddenSidebarContainer, setHiddenSidebarContainer] = useState(false);
|
|
54
38
|
const [hiddenSidebar, setHiddenSidebar] = useState(false);
|
|
55
39
|
const toggleSidebar = useCallback(() => {
|
|
@@ -57,18 +41,19 @@ function DocPageContent({currentDocRoute, versionMetadata, children}) {
|
|
|
57
41
|
setHiddenSidebar(false);
|
|
58
42
|
}
|
|
59
43
|
|
|
60
|
-
setHiddenSidebarContainer(!
|
|
44
|
+
setHiddenSidebarContainer((value) => !value);
|
|
61
45
|
}, [hiddenSidebar]);
|
|
62
46
|
return (
|
|
63
47
|
<Layout
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
searchMetadatas={{
|
|
48
|
+
wrapperClassName={ThemeClassNames.wrapper.docsPages}
|
|
49
|
+
pageClassName={ThemeClassNames.page.docsDocPage}
|
|
50
|
+
searchMetadata={{
|
|
68
51
|
version,
|
|
69
52
|
tag: docVersionSearchTag(pluginId, version),
|
|
70
53
|
}}>
|
|
71
54
|
<div className={styles.docPage}>
|
|
55
|
+
<BackToTopButton />
|
|
56
|
+
|
|
72
57
|
{sidebar && (
|
|
73
58
|
<aside
|
|
74
59
|
className={clsx(styles.docSidebarContainer, {
|
|
@@ -93,9 +78,6 @@ function DocPageContent({currentDocRoute, versionMetadata, children}) {
|
|
|
93
78
|
}
|
|
94
79
|
sidebar={sidebar}
|
|
95
80
|
path={currentDocRoute.path}
|
|
96
|
-
sidebarCollapsible={
|
|
97
|
-
siteConfig.themeConfig?.sidebarCollapsible ?? true
|
|
98
|
-
}
|
|
99
81
|
onCollapse={toggleSidebar}
|
|
100
82
|
isHidden={hiddenSidebar}
|
|
101
83
|
/>
|
|
@@ -156,15 +138,32 @@ function DocPage(props) {
|
|
|
156
138
|
);
|
|
157
139
|
|
|
158
140
|
if (!currentDocRoute) {
|
|
159
|
-
return <NotFound
|
|
160
|
-
}
|
|
141
|
+
return <NotFound />;
|
|
142
|
+
} // For now, the sidebarName is added as route config: not ideal!
|
|
161
143
|
|
|
144
|
+
const sidebarName = currentDocRoute.sidebar;
|
|
145
|
+
const sidebar = sidebarName
|
|
146
|
+
? versionMetadata.docsSidebars[sidebarName]
|
|
147
|
+
: null;
|
|
162
148
|
return (
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
149
|
+
<>
|
|
150
|
+
<Head>
|
|
151
|
+
{/* TODO we should add a core addRoute({htmlClassName}) generic plugin option */}
|
|
152
|
+
<html className={versionMetadata.className} />
|
|
153
|
+
</Head>
|
|
154
|
+
<DocsVersionProvider version={versionMetadata}>
|
|
155
|
+
<DocsSidebarProvider sidebar={sidebar}>
|
|
156
|
+
<DocPageContent
|
|
157
|
+
currentDocRoute={currentDocRoute}
|
|
158
|
+
versionMetadata={versionMetadata}
|
|
159
|
+
sidebarName={sidebarName}>
|
|
160
|
+
{renderRoutes(docRoutes, {
|
|
161
|
+
versionMetadata,
|
|
162
|
+
})}
|
|
163
|
+
</DocPageContent>
|
|
164
|
+
</DocsSidebarProvider>
|
|
165
|
+
</DocsVersionProvider>
|
|
166
|
+
</>
|
|
168
167
|
);
|
|
169
168
|
}
|
|
170
169
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
:root {
|
|
9
9
|
--doc-sidebar-width: 300px;
|
|
10
|
+
--doc-sidebar-hidden-width: 30px;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
:global(.docs-wrapper) {
|
|
@@ -19,6 +20,10 @@
|
|
|
19
20
|
width: 100%;
|
|
20
21
|
}
|
|
21
22
|
|
|
23
|
+
.docSidebarContainer {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
|
|
22
27
|
@media (min-width: 997px) {
|
|
23
28
|
.docMainContainer {
|
|
24
29
|
flex-grow: 1;
|
|
@@ -26,10 +31,11 @@
|
|
|
26
31
|
}
|
|
27
32
|
|
|
28
33
|
.docMainContainerEnhanced {
|
|
29
|
-
max-width:
|
|
34
|
+
max-width: calc(100% - var(--doc-sidebar-hidden-width));
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
.docSidebarContainer {
|
|
38
|
+
display: block;
|
|
33
39
|
width: var(--doc-sidebar-width);
|
|
34
40
|
margin-top: calc(-1 * var(--ifm-navbar-height));
|
|
35
41
|
border-right: 1px solid var(--ifm-toc-border-color);
|
|
@@ -39,7 +45,7 @@
|
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
.docSidebarContainerHidden {
|
|
42
|
-
width:
|
|
48
|
+
width: var(--doc-sidebar-hidden-width);
|
|
43
49
|
cursor: pointer;
|
|
44
50
|
}
|
|
45
51
|
|
|
@@ -77,24 +83,3 @@
|
|
|
77
83
|
) !important;
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
|
-
|
|
81
|
-
@media (max-width: 996px) {
|
|
82
|
-
.docSidebarContainer {
|
|
83
|
-
margin-top: 0;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
@media (min-width: 997px) and (max-width: 1320px) {
|
|
88
|
-
.docItemWrapper {
|
|
89
|
-
max-width: calc(
|
|
90
|
-
var(--ifm-container-width) - var(--doc-sidebar-width) -
|
|
91
|
-
var(--ifm-spacing-horizontal) * 2
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.docItemWrapperEnhanced {
|
|
96
|
-
max-width: calc(
|
|
97
|
-
var(--ifm-container-width) - var(--ifm-spacing-horizontal) * 2
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
}
|