@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
|
@@ -5,91 +5,26 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import React, {useEffect, useState
|
|
8
|
+
import React, {useEffect, useState} from 'react';
|
|
9
9
|
import clsx from 'clsx';
|
|
10
10
|
import Highlight, {defaultProps, Language} from 'prism-react-renderer';
|
|
11
11
|
import copy from 'copy-text-to-clipboard';
|
|
12
|
-
import
|
|
12
|
+
import Translate, {translate} from '@docusaurus/Translate';
|
|
13
|
+
import {
|
|
14
|
+
useThemeConfig,
|
|
15
|
+
parseCodeBlockTitle,
|
|
16
|
+
parseLanguage,
|
|
17
|
+
parseLines,
|
|
18
|
+
ThemeClassNames,
|
|
19
|
+
} from '@docusaurus/theme-common';
|
|
13
20
|
import usePrismTheme from '@theme/hooks/usePrismTheme';
|
|
14
21
|
import type {Props} from '@theme/CodeBlock';
|
|
15
|
-
import Translate, {translate} from '@docusaurus/Translate';
|
|
16
22
|
|
|
17
23
|
import styles from './styles.module.css';
|
|
18
24
|
|
|
19
|
-
import {useThemeConfig, parseCodeBlockTitle} from '@docusaurus/theme-common';
|
|
20
|
-
|
|
21
|
-
const highlightLinesRangeRegex = /{([\d,-]+)}/;
|
|
22
|
-
const getHighlightDirectiveRegex = (
|
|
23
|
-
languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
|
|
24
|
-
) => {
|
|
25
|
-
// supported types of comments
|
|
26
|
-
const comments = {
|
|
27
|
-
js: {
|
|
28
|
-
start: '\\/\\/',
|
|
29
|
-
end: '',
|
|
30
|
-
},
|
|
31
|
-
jsBlock: {
|
|
32
|
-
start: '\\/\\*',
|
|
33
|
-
end: '\\*\\/',
|
|
34
|
-
},
|
|
35
|
-
jsx: {
|
|
36
|
-
start: '\\{\\s*\\/\\*',
|
|
37
|
-
end: '\\*\\/\\s*\\}',
|
|
38
|
-
},
|
|
39
|
-
python: {
|
|
40
|
-
start: '#',
|
|
41
|
-
end: '',
|
|
42
|
-
},
|
|
43
|
-
html: {
|
|
44
|
-
start: '<!--',
|
|
45
|
-
end: '-->',
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
// supported directives
|
|
49
|
-
const directives = [
|
|
50
|
-
'highlight-next-line',
|
|
51
|
-
'highlight-start',
|
|
52
|
-
'highlight-end',
|
|
53
|
-
].join('|');
|
|
54
|
-
// to be more reliable, the opening and closing comment must match
|
|
55
|
-
const commentPattern = languages
|
|
56
|
-
.map(
|
|
57
|
-
(lang) =>
|
|
58
|
-
`(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
|
|
59
|
-
)
|
|
60
|
-
.join('|');
|
|
61
|
-
// white space is allowed, but otherwise it should be on it's own line
|
|
62
|
-
return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
|
|
63
|
-
};
|
|
64
|
-
// select comment styles based on language
|
|
65
|
-
const highlightDirectiveRegex = (lang) => {
|
|
66
|
-
switch (lang) {
|
|
67
|
-
case 'js':
|
|
68
|
-
case 'javascript':
|
|
69
|
-
case 'ts':
|
|
70
|
-
case 'typescript':
|
|
71
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock']);
|
|
72
|
-
|
|
73
|
-
case 'jsx':
|
|
74
|
-
case 'tsx':
|
|
75
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
|
|
76
|
-
|
|
77
|
-
case 'html':
|
|
78
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
|
|
79
|
-
|
|
80
|
-
case 'python':
|
|
81
|
-
case 'py':
|
|
82
|
-
return getHighlightDirectiveRegex(['python']);
|
|
83
|
-
|
|
84
|
-
default:
|
|
85
|
-
// all comment types
|
|
86
|
-
return getHighlightDirectiveRegex();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
25
|
export default function CodeBlock({
|
|
91
26
|
children,
|
|
92
|
-
className:
|
|
27
|
+
className: blockClassName,
|
|
93
28
|
metastring,
|
|
94
29
|
title,
|
|
95
30
|
}: Props): JSX.Element {
|
|
@@ -112,78 +47,16 @@ export default function CodeBlock({
|
|
|
112
47
|
// so we probably don't need to parse the metastring
|
|
113
48
|
// (note: title="xyz" => title prop still has the quotes)
|
|
114
49
|
const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
|
|
115
|
-
|
|
116
|
-
const button = useRef(null);
|
|
117
|
-
let highlightLines: number[] = [];
|
|
118
|
-
|
|
119
50
|
const prismTheme = usePrismTheme();
|
|
120
51
|
|
|
121
52
|
// In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
|
|
122
|
-
const content = Array.isArray(children)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
// Tested above
|
|
126
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
127
|
-
const highlightLinesRange = metastring.match(highlightLinesRangeRegex)![1];
|
|
128
|
-
highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
let language =
|
|
132
|
-
languageClassName &&
|
|
133
|
-
// Force Prism's language union type to `any` because it does not contain all available languages
|
|
134
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
135
|
-
((languageClassName.replace(/language-/, '') as Language) as any);
|
|
136
|
-
|
|
137
|
-
if (!language && prism.defaultLanguage) {
|
|
138
|
-
language = prism.defaultLanguage;
|
|
139
|
-
}
|
|
53
|
+
const content = Array.isArray(children)
|
|
54
|
+
? children.join('')
|
|
55
|
+
: (children as string);
|
|
140
56
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
let range = '';
|
|
145
|
-
const directiveRegex = highlightDirectiveRegex(language);
|
|
146
|
-
// go through line by line
|
|
147
|
-
const lines = content.replace(/\n$/, '').split('\n');
|
|
148
|
-
let blockStart;
|
|
149
|
-
// loop through lines
|
|
150
|
-
for (let index = 0; index < lines.length; ) {
|
|
151
|
-
const line = lines[index];
|
|
152
|
-
// adjust for 0-index
|
|
153
|
-
const lineNumber = index + 1;
|
|
154
|
-
const match = line.match(directiveRegex);
|
|
155
|
-
if (match !== null) {
|
|
156
|
-
const directive = match
|
|
157
|
-
.slice(1)
|
|
158
|
-
.reduce(
|
|
159
|
-
(final: string | undefined, item) => final || item,
|
|
160
|
-
undefined,
|
|
161
|
-
);
|
|
162
|
-
switch (directive) {
|
|
163
|
-
case 'highlight-next-line':
|
|
164
|
-
range += `${lineNumber},`;
|
|
165
|
-
break;
|
|
166
|
-
|
|
167
|
-
case 'highlight-start':
|
|
168
|
-
blockStart = lineNumber;
|
|
169
|
-
break;
|
|
170
|
-
|
|
171
|
-
case 'highlight-end':
|
|
172
|
-
range += `${blockStart}-${lineNumber - 1},`;
|
|
173
|
-
break;
|
|
174
|
-
|
|
175
|
-
default:
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
lines.splice(index, 1);
|
|
179
|
-
} else {
|
|
180
|
-
// lines without directives are unchanged
|
|
181
|
-
index += 1;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
highlightLines = rangeParser(range);
|
|
185
|
-
code = lines.join('\n');
|
|
186
|
-
}
|
|
57
|
+
const language =
|
|
58
|
+
parseLanguage(blockClassName) ?? (prism.defaultLanguage as Language);
|
|
59
|
+
const {highlightLines, code} = parseLines(content, metastring, language);
|
|
187
60
|
|
|
188
61
|
const handleCopyCode = () => {
|
|
189
62
|
copy(code);
|
|
@@ -200,7 +73,12 @@ export default function CodeBlock({
|
|
|
200
73
|
code={code}
|
|
201
74
|
language={language}>
|
|
202
75
|
{({className, style, tokens, getLineProps, getTokenProps}) => (
|
|
203
|
-
<div
|
|
76
|
+
<div
|
|
77
|
+
className={clsx(
|
|
78
|
+
styles.codeBlockContainer,
|
|
79
|
+
blockClassName,
|
|
80
|
+
ThemeClassNames.common.codeBlock,
|
|
81
|
+
)}>
|
|
204
82
|
{codeBlockTitle && (
|
|
205
83
|
<div style={style} className={styles.codeBlockTitle}>
|
|
206
84
|
{codeBlockTitle}
|
|
@@ -210,19 +88,17 @@ export default function CodeBlock({
|
|
|
210
88
|
<pre
|
|
211
89
|
/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
|
|
212
90
|
tabIndex={0}
|
|
213
|
-
className={clsx(className, styles.codeBlock, 'thin-scrollbar'
|
|
214
|
-
[styles.codeBlockWithTitle]: codeBlockTitle,
|
|
215
|
-
})}
|
|
91
|
+
className={clsx(className, styles.codeBlock, 'thin-scrollbar')}
|
|
216
92
|
style={style}>
|
|
217
93
|
<code className={styles.codeBlockLines}>
|
|
218
94
|
{tokens.map((line, i) => {
|
|
219
|
-
if (line.length === 1 && line[0].content === '') {
|
|
220
|
-
line[0].content = '
|
|
95
|
+
if (line.length === 1 && line[0].content === '\n') {
|
|
96
|
+
line[0].content = '';
|
|
221
97
|
}
|
|
222
98
|
|
|
223
99
|
const lineProps = getLineProps({line, key: i});
|
|
224
100
|
|
|
225
|
-
if (highlightLines.includes(i
|
|
101
|
+
if (highlightLines.includes(i)) {
|
|
226
102
|
lineProps.className += ' docusaurus-highlight-code-line';
|
|
227
103
|
}
|
|
228
104
|
|
|
@@ -231,6 +107,7 @@ export default function CodeBlock({
|
|
|
231
107
|
{line.map((token, key) => (
|
|
232
108
|
<span key={key} {...getTokenProps({token, key})} />
|
|
233
109
|
))}
|
|
110
|
+
<br />
|
|
234
111
|
</span>
|
|
235
112
|
);
|
|
236
113
|
})}
|
|
@@ -238,7 +115,6 @@ export default function CodeBlock({
|
|
|
238
115
|
</pre>
|
|
239
116
|
|
|
240
117
|
<button
|
|
241
|
-
ref={button}
|
|
242
118
|
type="button"
|
|
243
119
|
aria-label={translate({
|
|
244
120
|
id: 'theme.CodeBlock.copyButtonAriaLabel',
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
.codeBlockContainer {
|
|
9
9
|
margin-bottom: var(--ifm-leading);
|
|
10
|
+
border-radius: var(--ifm-global-radius);
|
|
11
|
+
box-shadow: var(--ifm-global-shadow-lw);
|
|
10
12
|
}
|
|
11
13
|
|
|
12
14
|
.codeBlockContent {
|
|
@@ -16,23 +18,25 @@
|
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
.codeBlockTitle {
|
|
19
|
-
border-top-left-radius: var(--ifm-global-radius);
|
|
20
|
-
border-top-right-radius: var(--ifm-global-radius);
|
|
21
21
|
border-bottom: 1px solid var(--ifm-color-emphasis-300);
|
|
22
22
|
font-size: var(--ifm-code-font-size);
|
|
23
23
|
font-weight: 500;
|
|
24
24
|
padding: 0.75rem var(--ifm-pre-padding);
|
|
25
|
+
border-top-left-radius: var(--ifm-global-radius);
|
|
26
|
+
border-top-right-radius: var(--ifm-global-radius);
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
.codeBlock {
|
|
28
|
-
padding: 0;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.codeBlockWithTitle {
|
|
29
|
+
.codeBlockTitle + .codeBlockContent .codeBlock {
|
|
32
30
|
border-top-left-radius: 0;
|
|
33
31
|
border-top-right-radius: 0;
|
|
34
32
|
}
|
|
35
33
|
|
|
34
|
+
.codeBlock {
|
|
35
|
+
margin: 0;
|
|
36
|
+
padding: 0;
|
|
37
|
+
border-radius: var(--ifm-global-radius);
|
|
38
|
+
}
|
|
39
|
+
|
|
36
40
|
.copyButton {
|
|
37
41
|
background: rgba(0, 0, 0, 0.3);
|
|
38
42
|
border-radius: var(--ifm-global-radius);
|
|
@@ -54,11 +58,10 @@
|
|
|
54
58
|
|
|
55
59
|
.codeBlockLines {
|
|
56
60
|
font: inherit;
|
|
61
|
+
/*rtl:ignore*/
|
|
57
62
|
float: left;
|
|
58
63
|
min-width: 100%;
|
|
59
64
|
padding: var(--ifm-pre-padding);
|
|
60
|
-
display: flex;
|
|
61
|
-
flex-direction: column;
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
@media print {
|
|
@@ -0,0 +1,24 @@
|
|
|
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 {Details as DetailsGeneric} from '@docusaurus/theme-common';
|
|
11
|
+
import type {Props} from '@theme/Details';
|
|
12
|
+
import styles from './styles.module.css';
|
|
13
|
+
|
|
14
|
+
// Should we have a custom details/summary comp in Infima instead of reusing alert classes?
|
|
15
|
+
const InfimaClasses = 'alert alert--info';
|
|
16
|
+
|
|
17
|
+
export default function Details({...props}: Props): JSX.Element {
|
|
18
|
+
return (
|
|
19
|
+
<DetailsGeneric
|
|
20
|
+
{...props}
|
|
21
|
+
className={clsx(InfimaClasses, styles.details, props.className)}
|
|
22
|
+
/>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
+
.details {
|
|
9
|
+
--docusaurus-details-decoration-color: var(--ifm-alert-border-color);
|
|
10
|
+
--docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
|
|
11
|
+
margin: 0 0 var(--ifm-spacing-vertical);
|
|
12
|
+
border: 1px solid var(--ifm-alert-border-color);
|
|
13
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
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, {ReactNode} from 'react';
|
|
9
|
+
import Link from '@docusaurus/Link';
|
|
10
|
+
import {
|
|
11
|
+
PropSidebarItemCategory,
|
|
12
|
+
PropSidebarItemLink,
|
|
13
|
+
} from '@docusaurus/plugin-content-docs';
|
|
14
|
+
import type {Props} from '@theme/DocCard';
|
|
15
|
+
import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common';
|
|
16
|
+
import clsx from 'clsx';
|
|
17
|
+
import styles from './styles.module.css';
|
|
18
|
+
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
19
|
+
|
|
20
|
+
function CardContainer({
|
|
21
|
+
href,
|
|
22
|
+
children,
|
|
23
|
+
}: {
|
|
24
|
+
href?: string;
|
|
25
|
+
children: ReactNode;
|
|
26
|
+
}): JSX.Element {
|
|
27
|
+
const className = clsx(
|
|
28
|
+
'card margin-bottom--lg padding--lg',
|
|
29
|
+
styles.cardContainer,
|
|
30
|
+
href && styles.cardContainerLink,
|
|
31
|
+
);
|
|
32
|
+
return href ? (
|
|
33
|
+
<Link href={href} className={className}>
|
|
34
|
+
{children}
|
|
35
|
+
</Link>
|
|
36
|
+
) : (
|
|
37
|
+
<div className={className}>{children}</div>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
function CardLayout({
|
|
42
|
+
href,
|
|
43
|
+
icon,
|
|
44
|
+
title,
|
|
45
|
+
description,
|
|
46
|
+
}: {
|
|
47
|
+
href?: string;
|
|
48
|
+
icon: ReactNode;
|
|
49
|
+
title: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
}): JSX.Element {
|
|
52
|
+
return (
|
|
53
|
+
<CardContainer href={href}>
|
|
54
|
+
<h2 className={clsx('text--truncate', styles.cardTitle)} title={title}>
|
|
55
|
+
{icon} {title}
|
|
56
|
+
</h2>
|
|
57
|
+
<div
|
|
58
|
+
className={clsx('text--truncate', styles.cardDescription)}
|
|
59
|
+
title={description}>
|
|
60
|
+
{description}
|
|
61
|
+
</div>
|
|
62
|
+
</CardContainer>
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function CardCategory({item}: {item: PropSidebarItemCategory}): JSX.Element {
|
|
67
|
+
const href = findFirstCategoryLink(item);
|
|
68
|
+
return (
|
|
69
|
+
<CardLayout
|
|
70
|
+
href={href}
|
|
71
|
+
icon="🗃️"
|
|
72
|
+
title={item.label}
|
|
73
|
+
description={`${item.items.length} items`}
|
|
74
|
+
/>
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function CardLink({item}: {item: PropSidebarItemLink}): JSX.Element {
|
|
79
|
+
const icon = isInternalUrl(item.href) ? '📄️' : '🔗';
|
|
80
|
+
const doc = useDocById(item.docId ?? undefined);
|
|
81
|
+
return (
|
|
82
|
+
<CardLayout
|
|
83
|
+
href={item.href}
|
|
84
|
+
icon={icon}
|
|
85
|
+
title={item.label}
|
|
86
|
+
description={doc?.description}
|
|
87
|
+
/>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export default function DocCard({item}: Props): JSX.Element {
|
|
92
|
+
switch (item.type) {
|
|
93
|
+
case 'link':
|
|
94
|
+
return <CardLink item={item} />;
|
|
95
|
+
case 'category':
|
|
96
|
+
return <CardCategory item={item} />;
|
|
97
|
+
default:
|
|
98
|
+
throw new Error(`unknown item type ${JSON.stringify(item)}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -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,27 @@
|
|
|
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
|
+
|
|
10
|
+
import DocCard from '@theme/DocCard';
|
|
11
|
+
import {PropSidebarItem} from '@docusaurus/plugin-content-docs';
|
|
12
|
+
|
|
13
|
+
export default function DocCardList({
|
|
14
|
+
items,
|
|
15
|
+
}: {
|
|
16
|
+
items: PropSidebarItem[];
|
|
17
|
+
}): JSX.Element {
|
|
18
|
+
return (
|
|
19
|
+
<div className="row">
|
|
20
|
+
{items.map((item, index) => (
|
|
21
|
+
<article key={index} className="col col--6">
|
|
22
|
+
<DocCard item={item} />
|
|
23
|
+
</article>
|
|
24
|
+
))}
|
|
25
|
+
</div>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
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 {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
|
10
|
+
import type {Props} from '@theme/DocCategoryGeneratedIndexPage';
|
|
11
|
+
import DocCardList from '@theme/DocCardList';
|
|
12
|
+
import DocPaginator from '@theme/DocPaginator';
|
|
13
|
+
import Seo from '@theme/Seo';
|
|
14
|
+
import DocVersionBanner from '@theme/DocVersionBanner';
|
|
15
|
+
import DocVersionBadge from '@theme/DocVersionBadge';
|
|
16
|
+
import {MainHeading} from '@theme/Heading';
|
|
17
|
+
|
|
18
|
+
import styles from './styles.module.css';
|
|
19
|
+
|
|
20
|
+
export default function DocCategoryGeneratedIndexPage({
|
|
21
|
+
categoryGeneratedIndex,
|
|
22
|
+
}: Props): JSX.Element {
|
|
23
|
+
const category = useCurrentSidebarCategory();
|
|
24
|
+
return (
|
|
25
|
+
<>
|
|
26
|
+
<Seo
|
|
27
|
+
title={categoryGeneratedIndex.title}
|
|
28
|
+
description={categoryGeneratedIndex.description}
|
|
29
|
+
/>
|
|
30
|
+
<div className={styles.generatedIndexPage}>
|
|
31
|
+
<DocVersionBanner />
|
|
32
|
+
<DocVersionBadge />
|
|
33
|
+
<header>
|
|
34
|
+
<MainHeading className={styles.title}>
|
|
35
|
+
{categoryGeneratedIndex.title}
|
|
36
|
+
</MainHeading>
|
|
37
|
+
{categoryGeneratedIndex.description && (
|
|
38
|
+
<p>{categoryGeneratedIndex.description}</p>
|
|
39
|
+
)}
|
|
40
|
+
</header>
|
|
41
|
+
<main className="margin-top--lg">
|
|
42
|
+
<DocCardList items={category.items} />
|
|
43
|
+
</main>
|
|
44
|
+
<footer className="margin-top--lg">
|
|
45
|
+
<DocPaginator
|
|
46
|
+
previous={categoryGeneratedIndex.navigation.previous}
|
|
47
|
+
next={categoryGeneratedIndex.navigation.next}
|
|
48
|
+
/>
|
|
49
|
+
</footer>
|
|
50
|
+
</div>
|
|
51
|
+
</>
|
|
52
|
+
);
|
|
53
|
+
}
|
|
@@ -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
|
+
}
|