@docusaurus/theme-classic 2.0.0-beta.8e9b829d9 → 2.0.0-beta.9
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/codeTranslations/ar.json +12 -6
- package/codeTranslations/base.json +12 -0
- package/codeTranslations/bn.json +6 -0
- package/codeTranslations/cs.json +62 -0
- package/codeTranslations/da.json +6 -0
- package/codeTranslations/de.json +8 -2
- package/codeTranslations/es.json +10 -4
- package/codeTranslations/fa.json +9 -3
- package/codeTranslations/fil.json +6 -0
- package/codeTranslations/fr.json +6 -0
- package/codeTranslations/he.json +6 -0
- package/codeTranslations/hi.json +6 -0
- package/codeTranslations/ja.json +6 -0
- package/codeTranslations/ko.json +6 -0
- package/codeTranslations/pl.json +6 -0
- package/codeTranslations/pt-BR.json +8 -2
- package/codeTranslations/pt-PT.json +6 -0
- package/codeTranslations/ru.json +6 -0
- package/codeTranslations/sr.json +62 -0
- package/codeTranslations/tr.json +9 -3
- package/codeTranslations/vi.json +10 -4
- package/codeTranslations/zh-Hans.json +6 -0
- package/codeTranslations/zh-Hant.json +6 -0
- package/lib/__tests__/validateThemeConfig.test.js +154 -4
- package/lib/index.js +2 -3
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme/AnnouncementBar/index.js +8 -12
- package/lib/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib/theme/BackToTopButton/index.js +27 -13
- package/lib/theme/BackToTopButton/styles.module.css +17 -14
- package/lib/theme/BlogArchivePage/index.js +89 -0
- package/lib/theme/BlogLayout/index.js +2 -6
- package/lib/theme/BlogListPage/index.js +1 -1
- package/lib/theme/BlogPostAuthor/index.js +51 -0
- package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib/theme/BlogPostAuthors/index.js +47 -0
- package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib/theme/BlogPostItem/index.js +58 -67
- package/lib/theme/BlogPostPage/index.js +33 -4
- package/lib/theme/BlogSidebar/styles.module.css +2 -2
- package/lib/theme/BlogTagsListPage/index.js +3 -28
- package/lib/theme/BlogTagsPostsPage/index.js +5 -8
- package/lib/theme/CodeBlock/index.js +44 -37
- package/lib/theme/CodeBlock/styles.module.css +1 -2
- package/lib/theme/DocItem/index.js +15 -40
- package/lib/theme/DocItem/styles.module.css +2 -12
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +18 -13
- package/lib/theme/DocSidebar/index.js +11 -16
- package/lib/theme/DocSidebarItem/index.js +12 -10
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/DocVersionBanner/index.js +6 -4
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/Footer/index.js +5 -3
- package/lib/theme/Heading/index.js +7 -9
- package/lib/theme/Heading/styles.css +4 -6
- package/lib/theme/Heading/styles.module.css +9 -5
- package/lib/theme/IconClose/index.js +31 -0
- package/lib/theme/LastUpdated/index.js +4 -2
- package/lib/theme/LayoutHead/index.js +13 -11
- package/lib/theme/LayoutProviders/index.js +7 -5
- package/lib/theme/Logo/index.js +14 -12
- package/lib/theme/MDXComponents/index.js +27 -1
- package/lib/theme/MDXComponents/styles.css +11 -0
- package/lib/theme/MDXPage/index.js +2 -1
- package/lib/theme/Navbar/index.js +20 -3
- package/lib/theme/Navbar/styles.module.css +5 -1
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +12 -4
- package/lib/theme/NavbarItem/DocNavbarItem.js +5 -3
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +7 -1
- package/lib/theme/NavbarItem/DropdownNavbarItem.js +3 -3
- package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +3 -4
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +5 -0
- package/lib/theme/Seo/index.js +10 -7
- package/lib/theme/TOC/index.js +9 -30
- package/lib/theme/TOC/styles.module.css +1 -1
- package/lib/theme/TOCCollapsible/index.js +5 -3
- package/lib/theme/TOCInline/index.js +7 -27
- package/lib/theme/TOCItems/index.js +78 -0
- package/lib/theme/Tabs/__tests__/index.test.js +123 -0
- package/lib/theme/Tabs/index.js +73 -50
- package/lib/theme/Tabs/styles.module.css +0 -13
- package/lib/theme/Tag/index.js +40 -0
- package/lib/theme/Tag/styles.module.css +70 -0
- package/lib/theme/TagsListByLetter/index.js +48 -0
- package/lib/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib/theme/TagsListInline/index.js +44 -0
- package/lib/theme/TagsListInline/styles.module.css +15 -0
- package/lib/theme/ThemedImage/index.js +3 -5
- package/lib/theme/Toggle/index.js +23 -18
- package/lib/theme/Toggle/styles.module.css +91 -0
- package/lib/theme/hooks/useHideableNavbar.js +14 -31
- package/lib/theme/hooks/useTheme.js +2 -2
- package/lib/theme/hooks/useWindowSize.js +2 -7
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +216 -105
- package/lib/validateThemeConfig.js +215 -254
- package/lib-next/__tests__/validateThemeConfig.test.js +154 -4
- package/lib-next/index.js +1 -2
- package/lib-next/prism-include-languages.js +0 -2
- 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 +37 -17
- package/lib-next/theme/BackToTopButton/styles.module.css +17 -14
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +4 -7
- package/lib-next/theme/BlogListPage/index.js +1 -0
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +55 -8
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +7 -39
- package/lib-next/theme/BlogTagsPostsPage/index.js +3 -4
- package/lib-next/theme/CodeBlock/index.js +53 -49
- package/lib-next/theme/CodeBlock/styles.module.css +1 -2
- package/lib-next/theme/DocItem/index.js +27 -45
- package/lib-next/theme/DocItem/styles.module.css +2 -12
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
- package/lib-next/theme/DocPage/index.js +18 -14
- package/lib-next/theme/DocSidebar/index.js +18 -15
- package/lib-next/theme/DocSidebarItem/index.js +31 -11
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/DocVersionBanner/index.js +16 -9
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/Footer/index.js +14 -3
- package/lib-next/theme/Heading/index.js +10 -13
- package/lib-next/theme/Heading/styles.css +4 -6
- package/lib-next/theme/Heading/styles.module.css +9 -5
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/LastUpdated/index.js +3 -2
- package/lib-next/theme/LayoutHead/index.js +9 -15
- package/lib-next/theme/LayoutProviders/index.js +8 -5
- package/lib-next/theme/Logo/index.js +23 -19
- package/lib-next/theme/MDXComponents/index.js +20 -1
- package/lib-next/theme/MDXComponents/styles.css +11 -0
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +27 -3
- package/lib-next/theme/Navbar/styles.module.css +5 -1
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +15 -4
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +5 -3
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +12 -4
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +4 -6
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +2 -6
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +2 -0
- 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 +12 -3
- package/lib-next/theme/TOCInline/index.js +10 -28
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
- package/lib-next/theme/Tabs/index.js +91 -43
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +27 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +42 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemedImage/index.js +3 -3
- package/lib-next/theme/Toggle/index.js +20 -15
- package/lib-next/theme/Toggle/styles.module.css +91 -0
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -47
- package/lib-next/theme/hooks/useTheme.js +2 -2
- package/lib-next/theme/hooks/useWindowSize.js +2 -6
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +216 -105
- package/lib-next/validateThemeConfig.js +40 -36
- package/package.json +23 -19
- package/src/__tests__/validateThemeConfig.test.js +154 -4
- package/src/index.ts +11 -9
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/AnnouncementBar/index.tsx +8 -12
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +39 -17
- package/src/theme/BackToTopButton/styles.module.css +17 -14
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +4 -8
- package/src/theme/BlogListPage/index.tsx +1 -0
- package/src/theme/BlogPostAuthor/index.tsx +49 -0
- package/src/theme/BlogPostAuthor/styles.module.css +12 -0
- package/src/theme/BlogPostAuthors/index.tsx +36 -0
- package/src/theme/BlogPostAuthors/styles.module.css +11 -0
- package/src/theme/BlogPostItem/index.tsx +70 -80
- package/src/theme/BlogPostPage/index.tsx +57 -8
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +7 -41
- package/src/theme/BlogTagsPostsPage/index.tsx +3 -4
- package/src/theme/CodeBlock/index.tsx +63 -47
- package/src/theme/CodeBlock/styles.module.css +1 -2
- package/src/theme/DocItem/index.tsx +27 -46
- package/src/theme/DocItem/styles.module.css +2 -12
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +16 -12
- package/src/theme/DocSidebar/index.tsx +20 -16
- package/src/theme/DocSidebarItem/index.tsx +29 -10
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/DocVersionBanner/index.tsx +26 -15
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/Footer/index.tsx +16 -3
- package/src/theme/Heading/index.tsx +10 -13
- package/src/theme/Heading/styles.css +4 -6
- package/src/theme/Heading/styles.module.css +9 -5
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/LastUpdated/index.tsx +3 -2
- package/src/theme/LayoutHead/index.tsx +9 -9
- package/src/theme/LayoutProviders/index.tsx +8 -5
- package/src/theme/Logo/index.tsx +19 -15
- package/src/theme/MDXComponents/index.tsx +20 -1
- package/src/theme/MDXComponents/styles.css +11 -0
- package/src/theme/MDXPage/index.tsx +10 -2
- package/src/theme/Navbar/index.tsx +26 -2
- package/src/theme/Navbar/styles.module.css +5 -1
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +15 -4
- package/src/theme/NavbarItem/DocNavbarItem.tsx +9 -5
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +15 -6
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +4 -6
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +6 -5
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +6 -1
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/TOC/index.tsx +13 -38
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +8 -2
- package/src/theme/TOCInline/index.tsx +13 -32
- package/src/theme/TOCItems/index.tsx +96 -0
- package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
- package/src/theme/Tabs/index.tsx +93 -49
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +31 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +45 -0
- package/src/theme/TagsListByLetter/styles.module.css +11 -0
- package/src/theme/TagsListInline/index.tsx +35 -0
- package/src/theme/TagsListInline/styles.module.css +15 -0
- package/src/theme/ThemedImage/index.tsx +3 -3
- package/src/theme/Toggle/index.tsx +20 -15
- package/src/theme/Toggle/styles.module.css +91 -0
- package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
- package/src/theme/hooks/useHideableNavbar.ts +32 -47
- package/src/theme/hooks/useTabGroupChoice.ts +2 -2
- package/src/theme/hooks/useTheme.ts +2 -2
- package/src/theme/hooks/useWindowSize.ts +2 -7
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/translations.ts +6 -10
- package/src/types.d.ts +216 -105
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +46 -12
- package/tsconfig.json +0 -1
- package/update-code-translations.js +5 -4
- package/update-code-translations.test.js +1 -1
- package/update.js +151 -0
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/hooks/useScrollPosition.js +0 -51
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useScrollPosition.js +0 -42
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useScrollPosition.ts +0 -52
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
.announcementBar {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
15
15
|
height: var(--docusaurus-announcement-bar-height);
|
|
16
16
|
background-color: var(--ifm-color-white);
|
|
17
17
|
color: var(--ifm-color-black);
|
|
@@ -22,47 +22,27 @@ html[data-announcement-bar-initially-dismissed='true'] .announcementBar {
|
|
|
22
22
|
display: none;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
display: none;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
@media screen and (min-width: 1024px) {
|
|
32
|
-
:root {
|
|
33
|
-
--docusaurus-announcement-bar-height: 30px;
|
|
34
|
-
}
|
|
25
|
+
.announcementBarPlaceholder {
|
|
26
|
+
flex: 0 0 10px;
|
|
35
27
|
}
|
|
36
28
|
|
|
37
29
|
.announcementBarClose {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
font-size: 1.25rem;
|
|
43
|
-
height: 100%;
|
|
30
|
+
flex: 0 0 30px;
|
|
31
|
+
align-self: stretch;
|
|
32
|
+
padding: 0;
|
|
33
|
+
line-height: 0;
|
|
44
34
|
}
|
|
45
35
|
|
|
46
36
|
.announcementBarContent {
|
|
37
|
+
flex: 1 1 auto;
|
|
47
38
|
font-size: 85%;
|
|
48
|
-
width: 100%;
|
|
49
39
|
text-align: center;
|
|
50
40
|
padding: 5px 0;
|
|
51
41
|
}
|
|
52
42
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
@media screen and (max-width: 576px) {
|
|
58
|
-
.announcementBarClose {
|
|
59
|
-
width: 35px;
|
|
60
|
-
}
|
|
61
|
-
.announcementBarContent {
|
|
62
|
-
width: auto;
|
|
63
|
-
}
|
|
64
|
-
.announcementBarCloseable {
|
|
65
|
-
margin-right: 35px;
|
|
43
|
+
@media print {
|
|
44
|
+
.announcementBar {
|
|
45
|
+
display: none;
|
|
66
46
|
}
|
|
67
47
|
}
|
|
68
48
|
|
|
@@ -70,3 +50,14 @@ html[data-announcement-bar-initially-dismissed='true'] .announcementBar {
|
|
|
70
50
|
color: inherit;
|
|
71
51
|
text-decoration: underline;
|
|
72
52
|
}
|
|
53
|
+
|
|
54
|
+
@media (min-width: 997px) {
|
|
55
|
+
:root {
|
|
56
|
+
--docusaurus-announcement-bar-height: 30px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.announcementBarPlaceholder,
|
|
60
|
+
.announcementBarClose {
|
|
61
|
+
flex-basis: 50px;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -9,10 +9,12 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
|
|
10
10
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _Translate = require("@docusaurus/Translate");
|
|
13
13
|
|
|
14
14
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
15
15
|
|
|
16
|
+
var _themeCommon = require("@docusaurus/theme-common");
|
|
17
|
+
|
|
16
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
19
|
|
|
18
20
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -76,21 +78,27 @@ function useSmoothScrollToTop() {
|
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
function BackToTopButton() {
|
|
81
|
+
const [show, setShow] = (0, _react.useState)(false);
|
|
82
|
+
const isFocusedAnchor = (0, _react.useRef)(false);
|
|
79
83
|
const {
|
|
80
84
|
smoothScrollTop,
|
|
81
85
|
cancelScrollToTop
|
|
82
86
|
} = useSmoothScrollToTop();
|
|
83
|
-
|
|
84
|
-
(0, _useScrollPosition.default)(({
|
|
87
|
+
(0, _themeCommon.useScrollPosition)(({
|
|
85
88
|
scrollY: scrollTop
|
|
86
89
|
}, lastPosition) => {
|
|
87
|
-
// No
|
|
90
|
+
const lastScrollTop = lastPosition === null || lastPosition === void 0 ? void 0 : lastPosition.scrollY; // No lastScrollTop means component is just being mounted.
|
|
88
91
|
// Not really a scroll event from the user, so we ignore it
|
|
89
|
-
|
|
92
|
+
|
|
93
|
+
if (!lastScrollTop) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (isFocusedAnchor.current) {
|
|
98
|
+
isFocusedAnchor.current = false;
|
|
90
99
|
return;
|
|
91
100
|
}
|
|
92
101
|
|
|
93
|
-
const lastScrollTop = lastPosition.scrollY;
|
|
94
102
|
const isScrollingUp = scrollTop < lastScrollTop;
|
|
95
103
|
|
|
96
104
|
if (!isScrollingUp) {
|
|
@@ -112,14 +120,20 @@ function BackToTopButton() {
|
|
|
112
120
|
} else {
|
|
113
121
|
setShow(false);
|
|
114
122
|
}
|
|
115
|
-
}
|
|
116
|
-
|
|
123
|
+
});
|
|
124
|
+
(0, _themeCommon.useLocationChange)(locationChangeEvent => {
|
|
125
|
+
if (locationChangeEvent.location.hash) {
|
|
126
|
+
isFocusedAnchor.current = true;
|
|
127
|
+
setShow(false);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
return <button aria-label={(0, _Translate.translate)({
|
|
131
|
+
id: 'theme.BackToTopButton.buttonAriaLabel',
|
|
132
|
+
message: 'Scroll back to top',
|
|
133
|
+
description: 'The ARIA label for the back to top button'
|
|
134
|
+
})} className={(0, _clsx.default)('clean-btn', _themeCommon.ThemeClassNames.common.backToTopButton, _stylesModule.default.backToTopButton, {
|
|
117
135
|
[_stylesModule.default.backToTopButtonShow]: show
|
|
118
|
-
})} type="button"
|
|
119
|
-
<svg viewBox="0 0 24 24" width="28">
|
|
120
|
-
<path d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z" fill="currentColor" />
|
|
121
|
-
</svg>
|
|
122
|
-
</button>;
|
|
136
|
+
})} type="button" onClick={() => smoothScrollTop()} />;
|
|
123
137
|
}
|
|
124
138
|
|
|
125
139
|
var _default = BackToTopButton;
|
|
@@ -5,32 +5,35 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
:root {
|
|
9
|
-
--docusaurus-btt-background: var(--ifm-color-primary);
|
|
10
|
-
--docusaurus-btt-color: #fff;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
8
|
.backToTopButton {
|
|
14
|
-
display: flex;
|
|
15
|
-
align-items: center;
|
|
16
|
-
justify-content: center;
|
|
17
9
|
position: fixed;
|
|
18
10
|
right: 1.3rem;
|
|
19
11
|
bottom: 1.3rem;
|
|
20
12
|
border-radius: 50%;
|
|
21
|
-
background: var(--
|
|
22
|
-
color: var(--docusaurus-btt-color);
|
|
13
|
+
background-color: var(--ifm-color-emphasis-200);
|
|
23
14
|
width: 3rem;
|
|
24
15
|
height: 3rem;
|
|
25
16
|
z-index: var(--ifm-z-index-fixed);
|
|
26
|
-
box-shadow:
|
|
27
|
-
transition: all var(--ifm-transition-fast)
|
|
17
|
+
box-shadow: var(--ifm-global-shadow-lw);
|
|
18
|
+
transition: all var(--ifm-transition-fast)
|
|
19
|
+
var(--ifm-transition-timing-default);
|
|
28
20
|
opacity: 0;
|
|
29
21
|
transform: scale(0);
|
|
30
22
|
}
|
|
31
23
|
|
|
32
|
-
.backToTopButton:
|
|
33
|
-
|
|
24
|
+
.backToTopButton:after {
|
|
25
|
+
content: ' ';
|
|
26
|
+
display: inline-block;
|
|
27
|
+
mask: var(--ifm-menu-link-sublist-icon) 50% / 2rem 2rem no-repeat;
|
|
28
|
+
background-color: var(--ifm-color-emphasis-1000);
|
|
29
|
+
width: 100%;
|
|
30
|
+
height: 100%;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@media (hover: hover) {
|
|
34
|
+
.backToTopButton:hover {
|
|
35
|
+
background-color: var(--ifm-color-emphasis-300);
|
|
36
|
+
}
|
|
34
37
|
}
|
|
35
38
|
|
|
36
39
|
.backToTopButtonShow {
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = BlogArchive;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _Layout = _interopRequireDefault(require("@theme/Layout"));
|
|
11
|
+
|
|
12
|
+
var _Link = _interopRequireDefault(require("@docusaurus/Link"));
|
|
13
|
+
|
|
14
|
+
var _Translate = require("@docusaurus/Translate");
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
20
|
+
*
|
|
21
|
+
* This source code is licensed under the MIT license found in the
|
|
22
|
+
* LICENSE file in the root directory of this source tree.
|
|
23
|
+
*/
|
|
24
|
+
function Year({
|
|
25
|
+
year,
|
|
26
|
+
posts
|
|
27
|
+
}) {
|
|
28
|
+
return <>
|
|
29
|
+
<h3>{year}</h3>
|
|
30
|
+
<ul>
|
|
31
|
+
{posts.map(post => <li key={post.metadata.date}>
|
|
32
|
+
<_Link.default to={post.metadata.permalink}>
|
|
33
|
+
{post.metadata.formattedDate} - {post.metadata.title}
|
|
34
|
+
</_Link.default>
|
|
35
|
+
</li>)}
|
|
36
|
+
</ul>
|
|
37
|
+
</>;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function YearsSection({
|
|
41
|
+
years
|
|
42
|
+
}) {
|
|
43
|
+
return <section className="margin-vert--lg">
|
|
44
|
+
<div className="container">
|
|
45
|
+
<div className="row">
|
|
46
|
+
{years.map((_props, idx) => <div key={idx} className="col col--4 margin-vert--lg">
|
|
47
|
+
<Year {..._props} />
|
|
48
|
+
</div>)}
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</section>;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function listPostsByYears(blogPosts) {
|
|
55
|
+
const postsByYear = blogPosts.reduceRight((posts, post) => {
|
|
56
|
+
const year = post.metadata.date.split('-')[0];
|
|
57
|
+
const yearPosts = posts.get(year) || [];
|
|
58
|
+
return posts.set(year, [post, ...yearPosts]);
|
|
59
|
+
}, new Map());
|
|
60
|
+
return Array.from(postsByYear, ([year, posts]) => ({
|
|
61
|
+
year,
|
|
62
|
+
posts
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function BlogArchive({
|
|
67
|
+
archive
|
|
68
|
+
}) {
|
|
69
|
+
const title = (0, _Translate.translate)({
|
|
70
|
+
id: 'theme.blog.archive.title',
|
|
71
|
+
message: 'Archive',
|
|
72
|
+
description: 'The page & hero title of the blog archive page'
|
|
73
|
+
});
|
|
74
|
+
const description = (0, _Translate.translate)({
|
|
75
|
+
id: 'theme.blog.archive.description',
|
|
76
|
+
message: 'Archive',
|
|
77
|
+
description: 'The page & hero description of the blog archive page'
|
|
78
|
+
});
|
|
79
|
+
const years = listPostsByYears(archive.blogPosts);
|
|
80
|
+
return <_Layout.default title={title} description={description}>
|
|
81
|
+
<header className="hero hero--primary">
|
|
82
|
+
<div className="container">
|
|
83
|
+
<h1 className="hero__title">{title}</h1>
|
|
84
|
+
<p className="hero__subtitle">{description}</p>
|
|
85
|
+
</div>
|
|
86
|
+
</header>
|
|
87
|
+
<main>{years.length > 0 && <YearsSection years={years} />}</main>
|
|
88
|
+
</_Layout.default>;
|
|
89
|
+
}
|
|
@@ -13,8 +13,6 @@ var _Layout = _interopRequireDefault(require("@theme/Layout"));
|
|
|
13
13
|
|
|
14
14
|
var _BlogSidebar = _interopRequireDefault(require("@theme/BlogSidebar"));
|
|
15
15
|
|
|
16
|
-
var _TOC = _interopRequireDefault(require("@theme/TOC"));
|
|
17
|
-
|
|
18
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
17
|
|
|
20
18
|
/**
|
|
@@ -40,12 +38,10 @@ function BlogLayout(props) {
|
|
|
40
38
|
<main className={(0, _clsx.default)('col', {
|
|
41
39
|
'col--7': hasSidebar,
|
|
42
40
|
'col--9 col--offset-1': !hasSidebar
|
|
43
|
-
})}>
|
|
41
|
+
})} itemScope itemType="http://schema.org/Blog">
|
|
44
42
|
{children}
|
|
45
43
|
</main>
|
|
46
|
-
{toc && <div className="col col--2">
|
|
47
|
-
<_TOC.default toc={toc} />
|
|
48
|
-
</div>}
|
|
44
|
+
{toc && <div className="col col--2">{toc}</div>}
|
|
49
45
|
</div>
|
|
50
46
|
</div>
|
|
51
47
|
</_Layout.default>;
|
|
@@ -49,7 +49,7 @@ function BlogListPage(props) {
|
|
|
49
49
|
}} sidebar={sidebar}>
|
|
50
50
|
{items.map(({
|
|
51
51
|
content: BlogPostContent
|
|
52
|
-
}) => <_BlogPostItem.default key={BlogPostContent.metadata.permalink} frontMatter={BlogPostContent.frontMatter} metadata={BlogPostContent.metadata} truncated={BlogPostContent.metadata.truncated}>
|
|
52
|
+
}) => <_BlogPostItem.default key={BlogPostContent.metadata.permalink} frontMatter={BlogPostContent.frontMatter} assets={BlogPostContent.assets} metadata={BlogPostContent.metadata} truncated={BlogPostContent.metadata.truncated}>
|
|
53
53
|
<BlogPostContent />
|
|
54
54
|
</_BlogPostItem.default>)}
|
|
55
55
|
<_BlogListPaginator.default metadata={metadata} />
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _Link = _interopRequireDefault(require("@docusaurus/Link"));
|
|
11
|
+
|
|
12
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the MIT license found in the
|
|
20
|
+
* LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/
|
|
22
|
+
function BlogPostAuthor({
|
|
23
|
+
author
|
|
24
|
+
}) {
|
|
25
|
+
const {
|
|
26
|
+
name,
|
|
27
|
+
title,
|
|
28
|
+
url,
|
|
29
|
+
imageURL
|
|
30
|
+
} = author;
|
|
31
|
+
return <div className="avatar margin-bottom--sm">
|
|
32
|
+
{imageURL && <_Link.default className="avatar__photo-link avatar__photo" href={url}>
|
|
33
|
+
<img className={_stylesModule.default.image} src={imageURL} alt={name} />
|
|
34
|
+
</_Link.default>}
|
|
35
|
+
|
|
36
|
+
{// Note: only legacy author frontmatter allow empty name (not frontMatter.authors)
|
|
37
|
+
name && <div className="avatar__intro" itemProp="author" itemScope itemType="https://schema.org/Person">
|
|
38
|
+
<div className="avatar__name">
|
|
39
|
+
<_Link.default href={url} itemProp="url">
|
|
40
|
+
<span itemProp="name">{name}</span>
|
|
41
|
+
</_Link.default>
|
|
42
|
+
</div>
|
|
43
|
+
{title && <small className="avatar__subtitle" itemProp="description">
|
|
44
|
+
{title}
|
|
45
|
+
</small>}
|
|
46
|
+
</div>}
|
|
47
|
+
</div>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
var _default = BlogPostAuthor;
|
|
51
|
+
exports.default = _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
.image {
|
|
9
|
+
width: 100%;
|
|
10
|
+
height: 100%;
|
|
11
|
+
object-fit: cover;
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = BlogPostAuthors;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
11
|
+
|
|
12
|
+
var _BlogPostAuthor = _interopRequireDefault(require("@theme/BlogPostAuthor"));
|
|
13
|
+
|
|
14
|
+
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
20
|
+
*
|
|
21
|
+
* This source code is licensed under the MIT license found in the
|
|
22
|
+
* LICENSE file in the root directory of this source tree.
|
|
23
|
+
*/
|
|
24
|
+
// Component responsible for the authors layout
|
|
25
|
+
function BlogPostAuthors({
|
|
26
|
+
authors,
|
|
27
|
+
assets
|
|
28
|
+
}) {
|
|
29
|
+
const authorsCount = authors.length;
|
|
30
|
+
|
|
31
|
+
if (authorsCount === 0) {
|
|
32
|
+
return <></>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return <div className="row margin-top--md margin-bottom--sm">
|
|
36
|
+
{authors.map((author, idx) => {
|
|
37
|
+
var _assets$authorsImageU;
|
|
38
|
+
|
|
39
|
+
return <div className={(0, _clsx.default)('col col--6', _stylesModule.default.authorCol)} key={idx}>
|
|
40
|
+
<_BlogPostAuthor.default author={{ ...author,
|
|
41
|
+
// Handle author images using relative paths
|
|
42
|
+
imageURL: (_assets$authorsImageU = assets.authorsImageUrls[idx]) !== null && _assets$authorsImageU !== void 0 ? _assets$authorsImageU : author.imageURL
|
|
43
|
+
}} />
|
|
44
|
+
</div>;
|
|
45
|
+
})}
|
|
46
|
+
</div>;
|
|
47
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
.authorCol {
|
|
9
|
+
max-width: inherit !important;
|
|
10
|
+
flex-grow: 1 !important;
|
|
11
|
+
}
|
|
@@ -15,16 +15,20 @@ var _Translate = _interopRequireWildcard(require("@docusaurus/Translate"));
|
|
|
15
15
|
|
|
16
16
|
var _Link = _interopRequireDefault(require("@docusaurus/Link"));
|
|
17
17
|
|
|
18
|
+
var _useBaseUrl = require("@docusaurus/useBaseUrl");
|
|
19
|
+
|
|
18
20
|
var _themeCommon = require("@docusaurus/theme-common");
|
|
19
21
|
|
|
20
22
|
var _MDXComponents = _interopRequireDefault(require("@theme/MDXComponents"));
|
|
21
23
|
|
|
22
|
-
var _Seo = _interopRequireDefault(require("@theme/Seo"));
|
|
23
|
-
|
|
24
24
|
var _EditThisPage = _interopRequireDefault(require("@theme/EditThisPage"));
|
|
25
25
|
|
|
26
26
|
var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
|
|
27
27
|
|
|
28
|
+
var _TagsListInline = _interopRequireDefault(require("@theme/TagsListInline"));
|
|
29
|
+
|
|
30
|
+
var _BlogPostAuthors = _interopRequireDefault(require("@theme/BlogPostAuthors"));
|
|
31
|
+
|
|
28
32
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
33
|
|
|
30
34
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -55,10 +59,16 @@ function useReadingTimePlural() {
|
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
function BlogPostItem(props) {
|
|
62
|
+
var _assets$image;
|
|
63
|
+
|
|
58
64
|
const readingTimePlural = useReadingTimePlural();
|
|
65
|
+
const {
|
|
66
|
+
withBaseUrl
|
|
67
|
+
} = (0, _useBaseUrl.useBaseUrlUtils)();
|
|
59
68
|
const {
|
|
60
69
|
children,
|
|
61
70
|
frontMatter,
|
|
71
|
+
assets,
|
|
62
72
|
metadata,
|
|
63
73
|
truncated,
|
|
64
74
|
isBlogPostPage = false
|
|
@@ -70,91 +80,72 @@ function BlogPostItem(props) {
|
|
|
70
80
|
tags,
|
|
71
81
|
readingTime,
|
|
72
82
|
title,
|
|
73
|
-
editUrl
|
|
83
|
+
editUrl,
|
|
84
|
+
authors
|
|
74
85
|
} = metadata;
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
keywords
|
|
79
|
-
} = frontMatter;
|
|
80
|
-
const authorURL = frontMatter.author_url || frontMatter.authorURL;
|
|
81
|
-
const authorTitle = frontMatter.author_title || frontMatter.authorTitle;
|
|
82
|
-
const authorImageURL = frontMatter.author_image_url || frontMatter.authorImageURL;
|
|
86
|
+
const image = (_assets$image = assets.image) !== null && _assets$image !== void 0 ? _assets$image : frontMatter.image;
|
|
87
|
+
const truncatedPost = !isBlogPostPage && truncated;
|
|
88
|
+
const tagsExists = tags.length > 0;
|
|
83
89
|
|
|
84
90
|
const renderPostHeader = () => {
|
|
85
91
|
const TitleHeading = isBlogPostPage ? 'h1' : 'h2';
|
|
86
92
|
return <header>
|
|
87
|
-
<TitleHeading className={_stylesModule.default.blogPostTitle}>
|
|
88
|
-
{isBlogPostPage ? title : <_Link.default to={permalink}>
|
|
93
|
+
<TitleHeading className={_stylesModule.default.blogPostTitle} itemProp="headline">
|
|
94
|
+
{isBlogPostPage ? title : <_Link.default itemProp="url" to={permalink}>
|
|
95
|
+
{title}
|
|
96
|
+
</_Link.default>}
|
|
89
97
|
</TitleHeading>
|
|
90
98
|
<div className={(0, _clsx.default)(_stylesModule.default.blogPostData, 'margin-vert--md')}>
|
|
91
|
-
<time dateTime={date}>
|
|
99
|
+
<time dateTime={date} itemProp="datePublished">
|
|
100
|
+
{formattedDate}
|
|
101
|
+
</time>
|
|
92
102
|
|
|
93
|
-
{readingTime && <>
|
|
103
|
+
{typeof readingTime !== 'undefined' && <>
|
|
94
104
|
{' · '}
|
|
95
105
|
{readingTimePlural(readingTime)}
|
|
96
106
|
</>}
|
|
97
107
|
</div>
|
|
98
|
-
<
|
|
99
|
-
{authorImageURL && <_Link.default className="avatar__photo-link avatar__photo" href={authorURL}>
|
|
100
|
-
<img src={authorImageURL} alt={author} />
|
|
101
|
-
</_Link.default>}
|
|
102
|
-
<div className="avatar__intro">
|
|
103
|
-
{author && <>
|
|
104
|
-
<div className="avatar__name">
|
|
105
|
-
<_Link.default href={authorURL}>{author}</_Link.default>
|
|
106
|
-
</div>
|
|
107
|
-
<small className="avatar__subtitle">{authorTitle}</small>
|
|
108
|
-
</>}
|
|
109
|
-
</div>
|
|
110
|
-
</div>
|
|
108
|
+
<_BlogPostAuthors.default authors={authors} assets={assets} />
|
|
111
109
|
</header>;
|
|
112
110
|
};
|
|
113
111
|
|
|
114
|
-
return
|
|
115
|
-
|
|
116
|
-
keywords,
|
|
117
|
-
image
|
|
118
|
-
}} />
|
|
112
|
+
return <article className={!isBlogPostPage ? 'margin-bottom--xl' : undefined} itemProp="blogPost" itemScope itemType="http://schema.org/BlogPosting">
|
|
113
|
+
{renderPostHeader()}
|
|
119
114
|
|
|
120
|
-
<
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
115
|
+
{image && <meta itemProp="image" content={withBaseUrl(image, {
|
|
116
|
+
absolute: true
|
|
117
|
+
})} />}
|
|
118
|
+
|
|
119
|
+
<div className="markdown" itemProp="articleBody">
|
|
120
|
+
<_react2.MDXProvider components={_MDXComponents.default}>{children}</_react2.MDXProvider>
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
{(tagsExists || truncated) && <footer className={(0, _clsx.default)('row docusaurus-mt-lg', {
|
|
124
|
+
[_stylesModule.default.blogPostDetailsFull]: isBlogPostPage
|
|
125
|
+
})}>
|
|
126
|
+
{tagsExists && <div className={(0, _clsx.default)('col', {
|
|
127
|
+
'col--9': truncatedPost
|
|
128
|
+
})}>
|
|
129
|
+
<_TagsListInline.default tags={tags} />
|
|
130
|
+
</div>}
|
|
131
|
+
|
|
132
|
+
{isBlogPostPage && editUrl && <div className="col margin-top--sm">
|
|
133
|
+
<_EditThisPage.default editUrl={editUrl} />
|
|
134
|
+
</div>}
|
|
135
|
+
|
|
136
|
+
{truncatedPost && <div className={(0, _clsx.default)('col text--right', {
|
|
137
|
+
'col--3': tagsExists
|
|
127
138
|
})}>
|
|
128
|
-
|
|
139
|
+
<_Link.default to={metadata.permalink} aria-label={`Read more about ${title}`}>
|
|
129
140
|
<b>
|
|
130
|
-
<_Translate.default id="theme.
|
|
131
|
-
|
|
141
|
+
<_Translate.default id="theme.blog.post.readMore" description="The label used in blog post item excerpts to link to full blog posts">
|
|
142
|
+
Read More
|
|
132
143
|
</_Translate.default>
|
|
133
144
|
</b>
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
{label}
|
|
139
|
-
</_Link.default>)}
|
|
140
|
-
</div>}
|
|
141
|
-
|
|
142
|
-
{isBlogPostPage && editUrl && <div className="col margin-top--sm">
|
|
143
|
-
<_EditThisPage.default editUrl={editUrl} />
|
|
144
|
-
</div>}
|
|
145
|
-
|
|
146
|
-
{!isBlogPostPage && truncated && <div className="col text--right">
|
|
147
|
-
<_Link.default to={metadata.permalink} aria-label={`Read more about ${title}`}>
|
|
148
|
-
<b>
|
|
149
|
-
<_Translate.default id="theme.blog.post.readMore" description="The label used in blog post item excerpts to link to full blog posts">
|
|
150
|
-
Read More
|
|
151
|
-
</_Translate.default>
|
|
152
|
-
</b>
|
|
153
|
-
</_Link.default>
|
|
154
|
-
</div>}
|
|
155
|
-
</footer>}
|
|
156
|
-
</article>
|
|
157
|
-
</>;
|
|
145
|
+
</_Link.default>
|
|
146
|
+
</div>}
|
|
147
|
+
</footer>}
|
|
148
|
+
</article>;
|
|
158
149
|
}
|
|
159
150
|
|
|
160
151
|
var _default = BlogPostItem;
|