@docusaurus/theme-classic 2.0.0-beta.12faed89d → 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} +338 -156
- package/lib/translations.js +16 -7
- package/lib/types.d.ts +0 -629
- package/lib/validateThemeConfig.js +232 -248
- 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 +30 -59
- package/lib-next/theme/DocItem/styles.module.css +2 -11
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/DocSidebarItem → lib-next/theme/DocItemFooter}/styles.module.css +8 -5
- package/lib-next/theme/DocPage/index.js +46 -23
- 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 +37 -43
- package/lib-next/theme/DocSidebarItem/index.js +115 -65
- package/lib-next/theme/DocSidebarItem/styles.module.css +4 -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/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 +90 -39
- 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 +8 -5
- 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 +62 -34
- package/lib-next/theme/Navbar/styles.module.css +3 -39
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +45 -143
- 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/TOC/index.js +12 -36
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/index.js +13 -4
- package/lib-next/theme/TOCCollapsible/styles.module.css +1 -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 +2 -6
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/package.json +26 -24
- 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 +30 -60
- package/src/theme/DocItem/styles.module.css +2 -11
- 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 -22
- package/src/theme/DocPaginator/index.tsx +5 -33
- package/src/theme/DocPaginatorNavLink/index.tsx +38 -0
- package/src/theme/DocSidebar/index.tsx +38 -39
- package/src/theme/DocSidebarItem/index.tsx +108 -49
- package/src/theme/DocSidebarItem/styles.module.css +4 -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/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 +103 -42
- 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 +8 -5
- 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 +62 -35
- package/src/theme/Navbar/styles.module.css +3 -39
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -149
- 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/TOC/index.tsx +13 -35
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +13 -4
- package/src/theme/TOCCollapsible/styles.module.css +1 -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 +2 -7
- 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 -629
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +160 -100
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -56
- package/codeTranslations/base.json +0 -110
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -56
- package/codeTranslations/de.json +0 -56
- package/codeTranslations/es.json +0 -56
- package/codeTranslations/fa.json +0 -56
- package/codeTranslations/fil.json +0 -56
- package/codeTranslations/fr.json +0 -56
- package/codeTranslations/he.json +0 -56
- package/codeTranslations/hi.json +0 -56
- package/codeTranslations/ja.json +0 -56
- package/codeTranslations/ko.json +0 -56
- package/codeTranslations/pl.json +0 -56
- package/codeTranslations/pt-BR.json +0 -56
- package/codeTranslations/pt-PT.json +0 -56
- package/codeTranslations/ru.json +0 -56
- package/codeTranslations/tr.json +0 -56
- package/codeTranslations/vi.json +0 -56
- package/codeTranslations/zh-Hans.json +0 -56
- package/codeTranslations/zh-Hant.json +0 -56
- 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 -138
- package/lib/theme/DocItem/styles.module.css +0 -31
- package/lib/theme/DocPage/index.js +0 -139
- package/lib/theme/DocPage/styles.module.css +0 -85
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -133
- package/lib/theme/DocSidebar/styles.module.css +0 -106
- package/lib/theme/DocSidebarItem/index.js +0 -175
- package/lib/theme/DocVersionBanner/index.js +0 -128
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -115
- package/lib/theme/Footer/styles.module.css +0 -15
- 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 -38
- 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 -248
- package/lib/theme/Navbar/styles.module.css +0 -63
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -210
- 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 -71
- package/lib/theme/SkipToContent/styles.module.css +0 -14
- package/lib/theme/TOC/index.js +0 -60
- package/lib/theme/TOC/styles.module.css +0 -23
- package/lib/theme/TOCCollapsible/index.js +0 -51
- package/lib/theme/TOCCollapsible/styles.module.css +0 -49
- 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/ThemedImage/styles.module.css +0 -18
- 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 -73
- 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 -319
- 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 -242
- package/update-code-translations.test.js +0 -33
|
@@ -9,7 +9,12 @@ import React from 'react';
|
|
|
9
9
|
import clsx from 'clsx';
|
|
10
10
|
|
|
11
11
|
import Link from '@docusaurus/Link';
|
|
12
|
-
import {
|
|
12
|
+
import {
|
|
13
|
+
FooterLinkItem,
|
|
14
|
+
useThemeConfig,
|
|
15
|
+
MultiColumnFooter,
|
|
16
|
+
SimpleFooter,
|
|
17
|
+
} from '@docusaurus/theme-common';
|
|
13
18
|
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
14
19
|
import isInternalUrl from '@docusaurus/isInternalUrl';
|
|
15
20
|
import styles from './styles.module.css';
|
|
@@ -49,12 +54,86 @@ function FooterLink({
|
|
|
49
54
|
);
|
|
50
55
|
}
|
|
51
56
|
|
|
52
|
-
|
|
57
|
+
function FooterLogo({
|
|
53
58
|
sources,
|
|
54
59
|
alt,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
)
|
|
60
|
+
width,
|
|
61
|
+
height,
|
|
62
|
+
}: Pick<ThemedImageProps, 'sources' | 'alt' | 'width' | 'height'>) {
|
|
63
|
+
return (
|
|
64
|
+
<ThemedImage
|
|
65
|
+
className="footer__logo"
|
|
66
|
+
alt={alt}
|
|
67
|
+
sources={sources}
|
|
68
|
+
width={width}
|
|
69
|
+
height={height}
|
|
70
|
+
/>
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function MultiColumnLinks({links}: {links: MultiColumnFooter['links']}) {
|
|
75
|
+
return (
|
|
76
|
+
<>
|
|
77
|
+
{links.map((linkItem, i) => (
|
|
78
|
+
<div key={i} className="col footer__col">
|
|
79
|
+
<div className="footer__title">{linkItem.title}</div>
|
|
80
|
+
<ul className="footer__items">
|
|
81
|
+
{linkItem.items.map((item, key) =>
|
|
82
|
+
item.html ? (
|
|
83
|
+
<li
|
|
84
|
+
key={key}
|
|
85
|
+
className="footer__item"
|
|
86
|
+
// Developer provided the HTML, so assume it's safe.
|
|
87
|
+
// eslint-disable-next-line react/no-danger
|
|
88
|
+
dangerouslySetInnerHTML={{
|
|
89
|
+
__html: item.html,
|
|
90
|
+
}}
|
|
91
|
+
/>
|
|
92
|
+
) : (
|
|
93
|
+
<li key={item.href || item.to} className="footer__item">
|
|
94
|
+
<FooterLink {...item} />
|
|
95
|
+
</li>
|
|
96
|
+
),
|
|
97
|
+
)}
|
|
98
|
+
</ul>
|
|
99
|
+
</div>
|
|
100
|
+
))}
|
|
101
|
+
</>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function SimpleLinks({links}: {links: SimpleFooter['links']}) {
|
|
106
|
+
return (
|
|
107
|
+
<div className="footer__links">
|
|
108
|
+
{links.map((item, key) => (
|
|
109
|
+
<>
|
|
110
|
+
{item.html ? (
|
|
111
|
+
<span
|
|
112
|
+
key={key}
|
|
113
|
+
className="footer__link-item"
|
|
114
|
+
// Developer provided the HTML, so assume it's safe.
|
|
115
|
+
// eslint-disable-next-line react/no-danger
|
|
116
|
+
dangerouslySetInnerHTML={{
|
|
117
|
+
__html: item.html,
|
|
118
|
+
}}
|
|
119
|
+
/>
|
|
120
|
+
) : (
|
|
121
|
+
<FooterLink {...item} />
|
|
122
|
+
)}
|
|
123
|
+
{links.length !== key + 1 && (
|
|
124
|
+
<span className="footer__link-separator">·</span>
|
|
125
|
+
)}
|
|
126
|
+
</>
|
|
127
|
+
))}
|
|
128
|
+
</div>
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function isMultiColumnFooterLinks(
|
|
133
|
+
links: MultiColumnFooter['links'] | SimpleFooter['links'],
|
|
134
|
+
): links is MultiColumnFooter['links'] {
|
|
135
|
+
return 'title' in links[0];
|
|
136
|
+
}
|
|
58
137
|
|
|
59
138
|
function Footer(): JSX.Element | null {
|
|
60
139
|
const {footer} = useThemeConfig();
|
|
@@ -74,48 +153,30 @@ function Footer(): JSX.Element | null {
|
|
|
74
153
|
className={clsx('footer', {
|
|
75
154
|
'footer--dark': footer.style === 'dark',
|
|
76
155
|
})}>
|
|
77
|
-
<div className="container">
|
|
78
|
-
{links &&
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{linkItem.items.map((item, key) =>
|
|
90
|
-
item.html ? (
|
|
91
|
-
<li
|
|
92
|
-
key={key}
|
|
93
|
-
className="footer__item"
|
|
94
|
-
// Developer provided the HTML, so assume it's safe.
|
|
95
|
-
// eslint-disable-next-line react/no-danger
|
|
96
|
-
dangerouslySetInnerHTML={{
|
|
97
|
-
__html: item.html,
|
|
98
|
-
}}
|
|
99
|
-
/>
|
|
100
|
-
) : (
|
|
101
|
-
<li key={item.href || item.to} className="footer__item">
|
|
102
|
-
<FooterLink {...item} />
|
|
103
|
-
</li>
|
|
104
|
-
),
|
|
105
|
-
)}
|
|
106
|
-
</ul>
|
|
107
|
-
) : null}
|
|
108
|
-
</div>
|
|
109
|
-
))}
|
|
110
|
-
</div>
|
|
111
|
-
)}
|
|
156
|
+
<div className="container container-fluid">
|
|
157
|
+
{links &&
|
|
158
|
+
links.length > 0 &&
|
|
159
|
+
(isMultiColumnFooterLinks(links) ? (
|
|
160
|
+
<div className="row footer__links">
|
|
161
|
+
<MultiColumnLinks links={links} />
|
|
162
|
+
</div>
|
|
163
|
+
) : (
|
|
164
|
+
<div className="footer__links text--center">
|
|
165
|
+
<SimpleLinks links={links} />
|
|
166
|
+
</div>
|
|
167
|
+
))}
|
|
112
168
|
{(logo || copyright) && (
|
|
113
169
|
<div className="footer__bottom text--center">
|
|
114
170
|
{logo && (logo.src || logo.srcDark) && (
|
|
115
171
|
<div className="margin-bottom--sm">
|
|
116
172
|
{logo.href ? (
|
|
117
173
|
<Link href={logo.href} className={styles.footerLogoLink}>
|
|
118
|
-
<FooterLogo
|
|
174
|
+
<FooterLogo
|
|
175
|
+
alt={logo.alt}
|
|
176
|
+
sources={sources}
|
|
177
|
+
width={logo.width}
|
|
178
|
+
height={logo.height}
|
|
179
|
+
/>
|
|
119
180
|
</Link>
|
|
120
181
|
) : (
|
|
121
182
|
<FooterLogo alt={logo.alt} sources={sources} />
|
|
@@ -139,4 +200,4 @@ function Footer(): JSX.Element | null {
|
|
|
139
200
|
);
|
|
140
201
|
}
|
|
141
202
|
|
|
142
|
-
export default Footer;
|
|
203
|
+
export default React.memo(Footer);
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
/* eslint-disable jsx-a11y/anchor-has-content, jsx-a11y/anchor-is-valid */
|
|
9
|
-
|
|
10
8
|
import React from 'react';
|
|
11
9
|
import clsx from 'clsx';
|
|
12
10
|
import type {HeadingType, Props} from '@theme/Heading';
|
|
@@ -18,23 +16,21 @@ import styles from './styles.module.css';
|
|
|
18
16
|
|
|
19
17
|
type HeadingComponent = (props: Props) => JSX.Element;
|
|
20
18
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
19
|
+
// eslint-disable-next-line react/function-component-definition
|
|
20
|
+
export const MainHeading: HeadingComponent = ({...props}) => (
|
|
21
|
+
<header>
|
|
22
|
+
<h1
|
|
23
|
+
{...props}
|
|
24
|
+
id={undefined} // h1 headings do not need an id because they don't appear in the TOC
|
|
25
|
+
>
|
|
26
|
+
{props.children}
|
|
27
|
+
</h1>
|
|
28
|
+
</header>
|
|
29
|
+
);
|
|
33
30
|
|
|
34
|
-
const createAnchorHeading =
|
|
35
|
-
Tag: HeadingType
|
|
36
|
-
|
|
37
|
-
function TargetComponent({id, ...props}) {
|
|
31
|
+
const createAnchorHeading =
|
|
32
|
+
(Tag: HeadingType) =>
|
|
33
|
+
({id, ...props}: Props) => {
|
|
38
34
|
const {
|
|
39
35
|
navbar: {hideOnScroll},
|
|
40
36
|
} = useThemeConfig();
|
|
@@ -44,15 +40,13 @@ const createAnchorHeading = (
|
|
|
44
40
|
}
|
|
45
41
|
|
|
46
42
|
return (
|
|
47
|
-
<Tag
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
id={id}
|
|
55
|
-
/>
|
|
43
|
+
<Tag
|
|
44
|
+
{...props}
|
|
45
|
+
className={clsx('anchor', {
|
|
46
|
+
[styles.anchorWithHideOnScrollNavbar]: hideOnScroll,
|
|
47
|
+
[styles.anchorWithStickyNavbar]: !hideOnScroll,
|
|
48
|
+
})}
|
|
49
|
+
id={id}>
|
|
56
50
|
{props.children}
|
|
57
51
|
<a
|
|
58
52
|
className="hash-link"
|
|
@@ -62,14 +56,13 @@ const createAnchorHeading = (
|
|
|
62
56
|
message: 'Direct link to heading',
|
|
63
57
|
description: 'Title for link to heading',
|
|
64
58
|
})}>
|
|
65
|
-
|
|
59
|
+
​
|
|
66
60
|
</a>
|
|
67
61
|
</Tag>
|
|
68
62
|
);
|
|
69
63
|
};
|
|
70
64
|
|
|
71
|
-
const Heading = (headingType: HeadingType): ((props: Props) => JSX.Element) =>
|
|
72
|
-
|
|
73
|
-
};
|
|
65
|
+
const Heading = (headingType: HeadingType): ((props: Props) => JSX.Element) =>
|
|
66
|
+
headingType === 'h1' ? MainHeading : createAnchorHeading(headingType);
|
|
74
67
|
|
|
75
68
|
export default Heading;
|
|
@@ -5,16 +5,15 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.anchor {
|
|
9
|
-
display: block;
|
|
10
|
-
position: relative;
|
|
11
|
-
top: -0.5rem;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
8
|
.hash-link {
|
|
15
9
|
opacity: 0;
|
|
16
10
|
padding-left: 0.5rem;
|
|
17
11
|
transition: opacity var(--ifm-transition-fast);
|
|
12
|
+
user-select: none;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.hash-link:before {
|
|
16
|
+
content: '#';
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
.hash-link:focus,
|
|
@@ -5,11 +5,15 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
/*
|
|
9
|
+
When the navbar is sticky, ensure that on anchor click,
|
|
10
|
+
the browser does not scroll that anchor behind the navbar
|
|
11
|
+
See https://twitter.com/JoshWComeau/status/1332015868725891076
|
|
12
|
+
*/
|
|
13
|
+
.anchorWithStickyNavbar {
|
|
14
|
+
scroll-margin-top: calc(var(--ifm-navbar-height) + 0.5rem);
|
|
10
15
|
}
|
|
11
16
|
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
margin-bottom: calc(var(--ifm-leading-desktop) * var(--ifm-leading));
|
|
17
|
+
.anchorWithHideOnScrollNavbar {
|
|
18
|
+
scroll-margin-top: 0.5rem;
|
|
15
19
|
}
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import type {Props} from '@theme/IconArrow';
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
function IconArrow(props: Props): JSX.Element {
|
|
12
12
|
return (
|
|
13
13
|
<svg width="20" height="20" aria-hidden="true" {...props}>
|
|
14
14
|
<g fill="#7a7a7a">
|
|
@@ -17,6 +17,6 @@ const IconArrow = (props: Props): JSX.Element => {
|
|
|
17
17
|
</g>
|
|
18
18
|
</svg>
|
|
19
19
|
);
|
|
20
|
-
}
|
|
20
|
+
}
|
|
21
21
|
|
|
22
22
|
export default IconArrow;
|
|
@@ -0,0 +1,26 @@
|
|
|
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 type {Props} from '@theme/IconClose';
|
|
10
|
+
|
|
11
|
+
export default function IconClose({
|
|
12
|
+
width = 21,
|
|
13
|
+
height = 21,
|
|
14
|
+
color = 'currentColor',
|
|
15
|
+
strokeWidth = 1.2,
|
|
16
|
+
className,
|
|
17
|
+
...restProps
|
|
18
|
+
}: Props): JSX.Element {
|
|
19
|
+
return (
|
|
20
|
+
<svg viewBox="0 0 15 15" width={width} height={height} {...restProps}>
|
|
21
|
+
<g stroke={color} strokeWidth={strokeWidth}>
|
|
22
|
+
<path d="M.75.75l13.5 13.5M14.25.75L.75 14.25" />
|
|
23
|
+
</g>
|
|
24
|
+
</svg>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -12,7 +12,7 @@ import type {Props} from '@theme/IconEdit';
|
|
|
12
12
|
|
|
13
13
|
import styles from './styles.module.css';
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
function IconEdit({className, ...restProps}: Props): JSX.Element {
|
|
16
16
|
return (
|
|
17
17
|
<svg
|
|
18
18
|
fill="currentColor"
|
|
@@ -27,6 +27,6 @@ const IconEdit = ({className, ...restProps}: Props): JSX.Element => {
|
|
|
27
27
|
</g>
|
|
28
28
|
</svg>
|
|
29
29
|
);
|
|
30
|
-
}
|
|
30
|
+
}
|
|
31
31
|
|
|
32
32
|
export default IconEdit;
|
|
@@ -10,10 +10,7 @@ import type {Props} from '@theme/IconExternalLink';
|
|
|
10
10
|
|
|
11
11
|
import styles from './styles.module.css';
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
width = 13.5,
|
|
15
|
-
height = 13.5,
|
|
16
|
-
}: Props): JSX.Element => {
|
|
13
|
+
function IconExternalLink({width = 13.5, height = 13.5}: Props): JSX.Element {
|
|
17
14
|
return (
|
|
18
15
|
<svg
|
|
19
16
|
width={width}
|
|
@@ -27,6 +24,6 @@ const IconExternalLink = ({
|
|
|
27
24
|
/>
|
|
28
25
|
</svg>
|
|
29
26
|
);
|
|
30
|
-
}
|
|
27
|
+
}
|
|
31
28
|
|
|
32
29
|
export default IconExternalLink;
|
|
@@ -8,11 +8,7 @@
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import type {Props} from '@theme/IconLanguage';
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
width = 20,
|
|
13
|
-
height = 20,
|
|
14
|
-
...props
|
|
15
|
-
}: Props): JSX.Element => {
|
|
11
|
+
function IconLanguage({width = 20, height = 20, ...props}: Props): JSX.Element {
|
|
16
12
|
return (
|
|
17
13
|
<svg
|
|
18
14
|
viewBox="0 0 20 20"
|
|
@@ -26,6 +22,6 @@ const IconLanguage = ({
|
|
|
26
22
|
/>
|
|
27
23
|
</svg>
|
|
28
24
|
);
|
|
29
|
-
}
|
|
25
|
+
}
|
|
30
26
|
|
|
31
27
|
export default IconLanguage;
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import type {Props} from '@theme/IconMenu';
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
function IconMenu({
|
|
12
12
|
width = 30,
|
|
13
13
|
height = 30,
|
|
14
14
|
className,
|
|
15
15
|
...restProps
|
|
16
|
-
}: Props): JSX.Element
|
|
16
|
+
}: Props): JSX.Element {
|
|
17
17
|
return (
|
|
18
18
|
<svg
|
|
19
19
|
className={className}
|
|
@@ -31,6 +31,6 @@ const IconMenu = ({
|
|
|
31
31
|
/>
|
|
32
32
|
</svg>
|
|
33
33
|
);
|
|
34
|
-
}
|
|
34
|
+
}
|
|
35
35
|
|
|
36
36
|
export default IconMenu;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import Translate from '@docusaurus/Translate';
|
|
10
10
|
import type {Props} from '@theme/LastUpdated';
|
|
11
|
+
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
11
12
|
|
|
12
13
|
function LastUpdatedAtDate({
|
|
13
14
|
lastUpdatedAt,
|
|
@@ -57,7 +58,7 @@ export default function LastUpdated({
|
|
|
57
58
|
lastUpdatedBy,
|
|
58
59
|
}: Props): JSX.Element {
|
|
59
60
|
return (
|
|
60
|
-
|
|
61
|
+
<span className={ThemeClassNames.common.lastUpdated}>
|
|
61
62
|
<Translate
|
|
62
63
|
id="theme.lastUpdated.lastUpdatedAtBy"
|
|
63
64
|
description="The sentence used to display when a page has been last updated, and by who"
|
|
@@ -84,6 +85,6 @@ export default function LastUpdated({
|
|
|
84
85
|
<small> (Simulated during dev for better perf)</small>
|
|
85
86
|
</div>
|
|
86
87
|
)}
|
|
87
|
-
|
|
88
|
+
</span>
|
|
88
89
|
);
|
|
89
90
|
}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import React from 'react';
|
|
9
9
|
import clsx from 'clsx';
|
|
10
|
+
import ErrorBoundary from '@docusaurus/ErrorBoundary';
|
|
10
11
|
import SkipToContent from '@theme/SkipToContent';
|
|
11
12
|
import AnnouncementBar from '@theme/AnnouncementBar';
|
|
12
13
|
import Navbar from '@theme/Navbar';
|
|
@@ -16,6 +17,7 @@ import LayoutHead from '@theme/LayoutHead';
|
|
|
16
17
|
import type {Props} from '@theme/Layout';
|
|
17
18
|
import useKeyboardNavigation from '@theme/hooks/useKeyboardNavigation';
|
|
18
19
|
import {ThemeClassNames} from '@docusaurus/theme-common';
|
|
20
|
+
import ErrorPageContent from '@theme/ErrorPageContent';
|
|
19
21
|
import './styles.css';
|
|
20
22
|
|
|
21
23
|
function Layout(props: Props): JSX.Element {
|
|
@@ -39,7 +41,7 @@ function Layout(props: Props): JSX.Element {
|
|
|
39
41
|
wrapperClassName,
|
|
40
42
|
pageClassName,
|
|
41
43
|
)}>
|
|
42
|
-
{children}
|
|
44
|
+
<ErrorBoundary fallback={ErrorPageContent}>{children}</ErrorBoundary>
|
|
43
45
|
</div>
|
|
44
46
|
|
|
45
47
|
{!noFooter && <Footer />}
|
|
@@ -10,12 +10,13 @@ import Head from '@docusaurus/Head';
|
|
|
10
10
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
11
11
|
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
12
12
|
import type {Props} from '@theme/Layout';
|
|
13
|
-
import
|
|
13
|
+
import SearchMetadata from '@theme/SearchMetadata';
|
|
14
14
|
import Seo from '@theme/Seo';
|
|
15
15
|
import {
|
|
16
16
|
DEFAULT_SEARCH_TAG,
|
|
17
17
|
useTitleFormatter,
|
|
18
18
|
useAlternatePageUtils,
|
|
19
|
+
useThemeConfig,
|
|
19
20
|
} from '@docusaurus/theme-common';
|
|
20
21
|
import {useLocation} from '@docusaurus/router';
|
|
21
22
|
|
|
@@ -83,13 +84,11 @@ function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
|
|
|
83
84
|
|
|
84
85
|
export default function LayoutHead(props: Props): JSX.Element {
|
|
85
86
|
const {
|
|
86
|
-
siteConfig: {
|
|
87
|
-
favicon,
|
|
88
|
-
themeConfig: {metadatas, image: defaultImage},
|
|
89
|
-
},
|
|
87
|
+
siteConfig: {favicon},
|
|
90
88
|
i18n: {currentLocale, localeConfigs},
|
|
91
89
|
} = useDocusaurusContext();
|
|
92
|
-
const {
|
|
90
|
+
const {metadata, image: defaultImage} = useThemeConfig();
|
|
91
|
+
const {title, description, image, keywords, searchMetadata} = props;
|
|
93
92
|
const faviconUrl = useBaseUrl(favicon);
|
|
94
93
|
const pageTitle = useTitleFormatter(title);
|
|
95
94
|
|
|
@@ -102,36 +101,38 @@ export default function LayoutHead(props: Props): JSX.Element {
|
|
|
102
101
|
<>
|
|
103
102
|
<Head>
|
|
104
103
|
<html lang={htmlLang} dir={htmlDir} />
|
|
105
|
-
{favicon && <link rel="
|
|
104
|
+
{favicon && <link rel="icon" href={faviconUrl} />}
|
|
106
105
|
<title>{pageTitle}</title>
|
|
107
106
|
<meta property="og:title" content={pageTitle} />
|
|
108
|
-
|
|
109
|
-
(defaultImage && (
|
|
110
|
-
<meta name="twitter:card" content="summary_large_image" />
|
|
111
|
-
))}
|
|
107
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
112
108
|
</Head>
|
|
113
109
|
|
|
114
|
-
|
|
110
|
+
{/* image can override the default image */}
|
|
111
|
+
{defaultImage && <Seo image={defaultImage} />}
|
|
112
|
+
{image && <Seo image={image} />}
|
|
113
|
+
|
|
114
|
+
<Seo description={description} keywords={keywords} />
|
|
115
115
|
|
|
116
116
|
<CanonicalUrlHeaders />
|
|
117
117
|
|
|
118
118
|
<AlternateLangHeaders />
|
|
119
119
|
|
|
120
|
-
<
|
|
120
|
+
<SearchMetadata
|
|
121
121
|
tag={DEFAULT_SEARCH_TAG}
|
|
122
122
|
locale={currentLocale}
|
|
123
|
-
{...
|
|
123
|
+
{...searchMetadata}
|
|
124
124
|
/>
|
|
125
125
|
|
|
126
126
|
<Head
|
|
127
127
|
// it's important to have an additional <Head> element here,
|
|
128
128
|
// as it allows react-helmet to override values set in previous <Head>
|
|
129
|
-
// ie we can override default
|
|
129
|
+
// ie we can override default metadata such as "twitter:card"
|
|
130
130
|
// In same Head, the same meta would appear twice instead of overriding
|
|
131
131
|
// See react-helmet doc
|
|
132
132
|
>
|
|
133
|
-
{
|
|
134
|
-
|
|
133
|
+
{/* Yes, "metadatum" is the grammatically correct term */}
|
|
134
|
+
{metadata.map((metadatum, i) => (
|
|
135
|
+
<meta key={`metadata_${i}`} {...metadatum} />
|
|
135
136
|
))}
|
|
136
137
|
</Head>
|
|
137
138
|
</>
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
AnnouncementBarProvider,
|
|
13
13
|
DocsPreferredVersionContextProvider,
|
|
14
14
|
MobileSecondaryMenuProvider,
|
|
15
|
+
ScrollControllerProvider,
|
|
15
16
|
} from '@docusaurus/theme-common';
|
|
16
17
|
import type {Props} from '@theme/LayoutProviders';
|
|
17
18
|
|
|
@@ -20,11 +21,13 @@ export default function LayoutProviders({children}: Props): JSX.Element {
|
|
|
20
21
|
<ThemeProvider>
|
|
21
22
|
<AnnouncementBarProvider>
|
|
22
23
|
<UserPreferencesProvider>
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
<ScrollControllerProvider>
|
|
25
|
+
<DocsPreferredVersionContextProvider>
|
|
26
|
+
<MobileSecondaryMenuProvider>
|
|
27
|
+
{children}
|
|
28
|
+
</MobileSecondaryMenuProvider>
|
|
29
|
+
</DocsPreferredVersionContextProvider>
|
|
30
|
+
</ScrollControllerProvider>
|
|
28
31
|
</UserPreferencesProvider>
|
|
29
32
|
</AnnouncementBarProvider>
|
|
30
33
|
</ThemeProvider>
|
package/src/theme/Logo/index.tsx
CHANGED
|
@@ -12,17 +12,15 @@ import Link from '@docusaurus/Link';
|
|
|
12
12
|
import ThemedImage from '@theme/ThemedImage';
|
|
13
13
|
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
14
14
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
15
|
+
import {useThemeConfig} from '@docusaurus/theme-common';
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
function Logo(props: Props): JSX.Element {
|
|
17
18
|
const {
|
|
18
|
-
siteConfig: {
|
|
19
|
-
title,
|
|
20
|
-
themeConfig: {
|
|
21
|
-
navbar: {title: navbarTitle, logo = {src: ''}},
|
|
22
|
-
},
|
|
23
|
-
},
|
|
24
|
-
isClient,
|
|
19
|
+
siteConfig: {title},
|
|
25
20
|
} = useDocusaurusContext();
|
|
21
|
+
const {
|
|
22
|
+
navbar: {title: navbarTitle, logo = {src: ''}},
|
|
23
|
+
} = useThemeConfig();
|
|
26
24
|
|
|
27
25
|
const {imageClassName, titleClassName, ...propsRest} = props;
|
|
28
26
|
const logoLink = useBaseUrl(logo.href || '/');
|
|
@@ -30,23 +28,29 @@ const Logo = (props: Props): JSX.Element => {
|
|
|
30
28
|
light: useBaseUrl(logo.src),
|
|
31
29
|
dark: useBaseUrl(logo.srcDark || logo.src),
|
|
32
30
|
};
|
|
31
|
+
const themedImage = (
|
|
32
|
+
<ThemedImage
|
|
33
|
+
sources={sources}
|
|
34
|
+
height={logo.height}
|
|
35
|
+
width={logo.width}
|
|
36
|
+
alt={logo.alt || navbarTitle || title}
|
|
37
|
+
/>
|
|
38
|
+
);
|
|
33
39
|
|
|
34
40
|
return (
|
|
35
41
|
<Link
|
|
36
42
|
to={logoLink}
|
|
37
43
|
{...propsRest}
|
|
38
44
|
{...(logo.target && {target: logo.target})}>
|
|
39
|
-
{logo.src &&
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/>
|
|
46
|
-
)}
|
|
45
|
+
{logo.src &&
|
|
46
|
+
(imageClassName ? (
|
|
47
|
+
<div className={imageClassName}>{themedImage}</div>
|
|
48
|
+
) : (
|
|
49
|
+
themedImage
|
|
50
|
+
))}
|
|
47
51
|
{navbarTitle != null && <b className={titleClassName}>{navbarTitle}</b>}
|
|
48
52
|
</Link>
|
|
49
53
|
);
|
|
50
|
-
}
|
|
54
|
+
}
|
|
51
55
|
|
|
52
56
|
export default Logo;
|