@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
|
@@ -4,88 +4,23 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React, {useEffect, useState
|
|
7
|
+
import React, {useEffect, useState} from 'react';
|
|
8
8
|
import clsx from 'clsx';
|
|
9
9
|
import Highlight, {defaultProps} from 'prism-react-renderer';
|
|
10
10
|
import copy from 'copy-text-to-clipboard';
|
|
11
|
-
import rangeParser from 'parse-numeric-range';
|
|
12
|
-
import usePrismTheme from '@theme/hooks/usePrismTheme';
|
|
13
11
|
import Translate, {translate} from '@docusaurus/Translate';
|
|
12
|
+
import {
|
|
13
|
+
useThemeConfig,
|
|
14
|
+
parseCodeBlockTitle,
|
|
15
|
+
parseLanguage,
|
|
16
|
+
parseLines,
|
|
17
|
+
ThemeClassNames,
|
|
18
|
+
} from '@docusaurus/theme-common';
|
|
19
|
+
import usePrismTheme from '@theme/hooks/usePrismTheme';
|
|
14
20
|
import styles from './styles.module.css';
|
|
15
|
-
import {useThemeConfig, parseCodeBlockTitle} from '@docusaurus/theme-common';
|
|
16
|
-
const highlightLinesRangeRegex = /{([\d,-]+)}/;
|
|
17
|
-
|
|
18
|
-
const getHighlightDirectiveRegex = (
|
|
19
|
-
languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
|
|
20
|
-
) => {
|
|
21
|
-
// supported types of comments
|
|
22
|
-
const comments = {
|
|
23
|
-
js: {
|
|
24
|
-
start: '\\/\\/',
|
|
25
|
-
end: '',
|
|
26
|
-
},
|
|
27
|
-
jsBlock: {
|
|
28
|
-
start: '\\/\\*',
|
|
29
|
-
end: '\\*\\/',
|
|
30
|
-
},
|
|
31
|
-
jsx: {
|
|
32
|
-
start: '\\{\\s*\\/\\*',
|
|
33
|
-
end: '\\*\\/\\s*\\}',
|
|
34
|
-
},
|
|
35
|
-
python: {
|
|
36
|
-
start: '#',
|
|
37
|
-
end: '',
|
|
38
|
-
},
|
|
39
|
-
html: {
|
|
40
|
-
start: '<!--',
|
|
41
|
-
end: '-->',
|
|
42
|
-
},
|
|
43
|
-
}; // supported directives
|
|
44
|
-
|
|
45
|
-
const directives = [
|
|
46
|
-
'highlight-next-line',
|
|
47
|
-
'highlight-start',
|
|
48
|
-
'highlight-end',
|
|
49
|
-
].join('|'); // to be more reliable, the opening and closing comment must match
|
|
50
|
-
|
|
51
|
-
const commentPattern = languages
|
|
52
|
-
.map(
|
|
53
|
-
(lang) =>
|
|
54
|
-
`(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
|
|
55
|
-
)
|
|
56
|
-
.join('|'); // white space is allowed, but otherwise it should be on it's own line
|
|
57
|
-
|
|
58
|
-
return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
|
|
59
|
-
}; // select comment styles based on language
|
|
60
|
-
|
|
61
|
-
const highlightDirectiveRegex = (lang) => {
|
|
62
|
-
switch (lang) {
|
|
63
|
-
case 'js':
|
|
64
|
-
case 'javascript':
|
|
65
|
-
case 'ts':
|
|
66
|
-
case 'typescript':
|
|
67
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock']);
|
|
68
|
-
|
|
69
|
-
case 'jsx':
|
|
70
|
-
case 'tsx':
|
|
71
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
|
|
72
|
-
|
|
73
|
-
case 'html':
|
|
74
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
|
|
75
|
-
|
|
76
|
-
case 'python':
|
|
77
|
-
case 'py':
|
|
78
|
-
return getHighlightDirectiveRegex(['python']);
|
|
79
|
-
|
|
80
|
-
default:
|
|
81
|
-
// all comment types
|
|
82
|
-
return getHighlightDirectiveRegex();
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
21
|
export default function CodeBlock({
|
|
87
22
|
children,
|
|
88
|
-
className:
|
|
23
|
+
className: blockClassName,
|
|
89
24
|
metastring,
|
|
90
25
|
title,
|
|
91
26
|
}) {
|
|
@@ -106,75 +41,11 @@ export default function CodeBlock({
|
|
|
106
41
|
// (note: title="xyz" => title prop still has the quotes)
|
|
107
42
|
|
|
108
43
|
const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
|
|
109
|
-
const button = useRef(null);
|
|
110
|
-
let highlightLines = [];
|
|
111
44
|
const prismTheme = usePrismTheme(); // In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
|
|
112
45
|
|
|
113
46
|
const content = Array.isArray(children) ? children.join('') : children;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
// Tested above
|
|
117
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
118
|
-
const highlightLinesRange = metastring.match(highlightLinesRangeRegex)[1];
|
|
119
|
-
highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
let language =
|
|
123
|
-
languageClassName && // Force Prism's language union type to `any` because it does not contain all available languages
|
|
124
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
|
-
languageClassName.replace(/language-/, '');
|
|
126
|
-
|
|
127
|
-
if (!language && prism.defaultLanguage) {
|
|
128
|
-
language = prism.defaultLanguage;
|
|
129
|
-
} // only declaration OR directive highlight can be used for a block
|
|
130
|
-
|
|
131
|
-
let code = content.replace(/\n$/, '');
|
|
132
|
-
|
|
133
|
-
if (highlightLines.length === 0 && language !== undefined) {
|
|
134
|
-
let range = '';
|
|
135
|
-
const directiveRegex = highlightDirectiveRegex(language); // go through line by line
|
|
136
|
-
|
|
137
|
-
const lines = content.replace(/\n$/, '').split('\n');
|
|
138
|
-
let blockStart; // loop through lines
|
|
139
|
-
|
|
140
|
-
for (let index = 0; index < lines.length; ) {
|
|
141
|
-
const line = lines[index]; // adjust for 0-index
|
|
142
|
-
|
|
143
|
-
const lineNumber = index + 1;
|
|
144
|
-
const match = line.match(directiveRegex);
|
|
145
|
-
|
|
146
|
-
if (match !== null) {
|
|
147
|
-
const directive = match
|
|
148
|
-
.slice(1)
|
|
149
|
-
.reduce((final, item) => final || item, undefined);
|
|
150
|
-
|
|
151
|
-
switch (directive) {
|
|
152
|
-
case 'highlight-next-line':
|
|
153
|
-
range += `${lineNumber},`;
|
|
154
|
-
break;
|
|
155
|
-
|
|
156
|
-
case 'highlight-start':
|
|
157
|
-
blockStart = lineNumber;
|
|
158
|
-
break;
|
|
159
|
-
|
|
160
|
-
case 'highlight-end':
|
|
161
|
-
range += `${blockStart}-${lineNumber - 1},`;
|
|
162
|
-
break;
|
|
163
|
-
|
|
164
|
-
default:
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
lines.splice(index, 1);
|
|
169
|
-
} else {
|
|
170
|
-
// lines without directives are unchanged
|
|
171
|
-
index += 1;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
highlightLines = rangeParser(range);
|
|
176
|
-
code = lines.join('\n');
|
|
177
|
-
}
|
|
47
|
+
const language = parseLanguage(blockClassName) ?? prism.defaultLanguage;
|
|
48
|
+
const {highlightLines, code} = parseLines(content, metastring, language);
|
|
178
49
|
|
|
179
50
|
const handleCopyCode = () => {
|
|
180
51
|
copy(code);
|
|
@@ -190,7 +61,12 @@ export default function CodeBlock({
|
|
|
190
61
|
code={code}
|
|
191
62
|
language={language}>
|
|
192
63
|
{({className, style, tokens, getLineProps, getTokenProps}) => (
|
|
193
|
-
<div
|
|
64
|
+
<div
|
|
65
|
+
className={clsx(
|
|
66
|
+
styles.codeBlockContainer,
|
|
67
|
+
blockClassName,
|
|
68
|
+
ThemeClassNames.common.codeBlock,
|
|
69
|
+
)}>
|
|
194
70
|
{codeBlockTitle && (
|
|
195
71
|
<div style={style} className={styles.codeBlockTitle}>
|
|
196
72
|
{codeBlockTitle}
|
|
@@ -200,14 +76,12 @@ export default function CodeBlock({
|
|
|
200
76
|
<pre
|
|
201
77
|
/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
|
|
202
78
|
tabIndex={0}
|
|
203
|
-
className={clsx(className, styles.codeBlock, 'thin-scrollbar'
|
|
204
|
-
[styles.codeBlockWithTitle]: codeBlockTitle,
|
|
205
|
-
})}
|
|
79
|
+
className={clsx(className, styles.codeBlock, 'thin-scrollbar')}
|
|
206
80
|
style={style}>
|
|
207
81
|
<code className={styles.codeBlockLines}>
|
|
208
82
|
{tokens.map((line, i) => {
|
|
209
|
-
if (line.length === 1 && line[0].content === '') {
|
|
210
|
-
line[0].content = '
|
|
83
|
+
if (line.length === 1 && line[0].content === '\n') {
|
|
84
|
+
line[0].content = '';
|
|
211
85
|
}
|
|
212
86
|
|
|
213
87
|
const lineProps = getLineProps({
|
|
@@ -215,7 +89,7 @@ export default function CodeBlock({
|
|
|
215
89
|
key: i,
|
|
216
90
|
});
|
|
217
91
|
|
|
218
|
-
if (highlightLines.includes(i
|
|
92
|
+
if (highlightLines.includes(i)) {
|
|
219
93
|
lineProps.className += ' docusaurus-highlight-code-line';
|
|
220
94
|
}
|
|
221
95
|
|
|
@@ -230,6 +104,7 @@ export default function CodeBlock({
|
|
|
230
104
|
})}
|
|
231
105
|
/>
|
|
232
106
|
))}
|
|
107
|
+
<br />
|
|
233
108
|
</span>
|
|
234
109
|
);
|
|
235
110
|
})}
|
|
@@ -237,7 +112,6 @@ export default function CodeBlock({
|
|
|
237
112
|
</pre>
|
|
238
113
|
|
|
239
114
|
<button
|
|
240
|
-
ref={button}
|
|
241
115
|
type="button"
|
|
242
116
|
aria-label={translate({
|
|
243
117
|
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,20 @@
|
|
|
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 {Details as DetailsGeneric} from '@docusaurus/theme-common';
|
|
10
|
+
import styles from './styles.module.css'; // Should we have a custom details/summary comp in Infima instead of reusing alert classes?
|
|
11
|
+
|
|
12
|
+
const InfimaClasses = 'alert alert--info';
|
|
13
|
+
export default function Details({...props}) {
|
|
14
|
+
return (
|
|
15
|
+
<DetailsGeneric
|
|
16
|
+
{...props}
|
|
17
|
+
className={clsx(InfimaClasses, styles.details, props.className)}
|
|
18
|
+
/>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -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,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,47 +5,40 @@
|
|
|
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
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
|
-
|
|
20
|
-
const {content: DocContent, versionMetadata} = props;
|
|
19
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
20
|
+
export default function DocItem(props) {
|
|
21
|
+
const {content: DocContent} = props;
|
|
21
22
|
const {metadata, frontMatter} = DocContent;
|
|
22
23
|
const {
|
|
23
24
|
image,
|
|
24
25
|
keywords,
|
|
25
26
|
hide_title: hideTitle,
|
|
26
27
|
hide_table_of_contents: hideTableOfContents,
|
|
28
|
+
toc_min_heading_level: tocMinHeadingLevel,
|
|
29
|
+
toc_max_heading_level: tocMaxHeadingLevel,
|
|
27
30
|
} = frontMatter;
|
|
28
|
-
const {
|
|
29
|
-
description,
|
|
30
|
-
title,
|
|
31
|
-
editUrl,
|
|
32
|
-
lastUpdatedAt,
|
|
33
|
-
formattedLastUpdatedAt,
|
|
34
|
-
lastUpdatedBy,
|
|
35
|
-
} = metadata;
|
|
36
|
-
const {pluginId} = useActivePlugin({
|
|
37
|
-
failfast: true,
|
|
38
|
-
});
|
|
39
|
-
const versions = useVersions(pluginId); // If site is not versioned or only one version is included
|
|
40
|
-
// we don't show the version badge
|
|
41
|
-
// See https://github.com/facebook/docusaurus/issues/3362
|
|
42
|
-
|
|
43
|
-
const showVersionBadge = versions.length > 1; // We only add a title if:
|
|
31
|
+
const {description, title} = metadata; // We only add a title if:
|
|
44
32
|
// - user asks to hide it with frontmatter
|
|
45
33
|
// - the markdown content does not already contain a top-level h1 heading
|
|
46
34
|
|
|
47
35
|
const shouldAddTitle =
|
|
48
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');
|
|
49
42
|
return (
|
|
50
43
|
<>
|
|
51
44
|
<Seo
|
|
@@ -62,16 +55,25 @@ function DocItem(props) {
|
|
|
62
55
|
className={clsx('col', {
|
|
63
56
|
[styles.docItemCol]: !hideTableOfContents,
|
|
64
57
|
})}>
|
|
65
|
-
<DocVersionBanner
|
|
58
|
+
<DocVersionBanner />
|
|
66
59
|
<div className={styles.docItemContainer}>
|
|
67
60
|
<article>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
+
/>
|
|
72
73
|
)}
|
|
73
74
|
|
|
74
|
-
<div
|
|
75
|
+
<div
|
|
76
|
+
className={clsx(ThemeClassNames.docs.docMarkdown, 'markdown')}>
|
|
75
77
|
{/*
|
|
76
78
|
Title can be declared inside md content or declared through frontmatter and added manually
|
|
77
79
|
To make both cases consistent, the added title is added under the same div.markdown block
|
|
@@ -82,36 +84,23 @@ function DocItem(props) {
|
|
|
82
84
|
<DocContent />
|
|
83
85
|
</div>
|
|
84
86
|
|
|
85
|
-
{
|
|
86
|
-
<footer className="row docusaurus-mt-lg">
|
|
87
|
-
<div className="col">
|
|
88
|
-
{editUrl && <EditThisPage editUrl={editUrl} />}
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
<div className={clsx('col', styles.lastUpdated)}>
|
|
92
|
-
{(lastUpdatedAt || lastUpdatedBy) && (
|
|
93
|
-
<LastUpdated
|
|
94
|
-
lastUpdatedAt={lastUpdatedAt}
|
|
95
|
-
formattedLastUpdatedAt={formattedLastUpdatedAt}
|
|
96
|
-
lastUpdatedBy={lastUpdatedBy}
|
|
97
|
-
/>
|
|
98
|
-
)}
|
|
99
|
-
</div>
|
|
100
|
-
</footer>
|
|
101
|
-
)}
|
|
87
|
+
<DocItemFooter {...props} />
|
|
102
88
|
</article>
|
|
103
89
|
|
|
104
|
-
<DocPaginator metadata={metadata} />
|
|
90
|
+
<DocPaginator previous={metadata.previous} next={metadata.next} />
|
|
105
91
|
</div>
|
|
106
92
|
</div>
|
|
107
|
-
{
|
|
93
|
+
{renderTocDesktop && (
|
|
108
94
|
<div className="col col--3">
|
|
109
|
-
<TOC
|
|
95
|
+
<TOC
|
|
96
|
+
toc={DocContent.toc}
|
|
97
|
+
minHeadingLevel={tocMinHeadingLevel}
|
|
98
|
+
maxHeadingLevel={tocMaxHeadingLevel}
|
|
99
|
+
className={ThemeClassNames.docs.docTocDesktop}
|
|
100
|
+
/>
|
|
110
101
|
</div>
|
|
111
102
|
)}
|
|
112
103
|
</div>
|
|
113
104
|
</>
|
|
114
105
|
);
|
|
115
106
|
}
|
|
116
|
-
|
|
117
|
-
export default DocItem;
|