@docusaurus/theme-classic 2.0.0-beta.8bda3b2db → 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 -7
- package/codeTranslations/base.json +17 -7
- package/codeTranslations/bn.json +11 -5
- package/codeTranslations/cs.json +62 -0
- package/codeTranslations/da.json +8 -3
- package/codeTranslations/de.json +8 -3
- package/codeTranslations/es.json +15 -10
- package/codeTranslations/fa.json +31 -26
- package/codeTranslations/fil.json +8 -3
- package/codeTranslations/fr.json +8 -3
- package/codeTranslations/he.json +9 -4
- package/codeTranslations/hi.json +9 -4
- package/codeTranslations/ja.json +8 -3
- package/codeTranslations/ko.json +8 -3
- package/codeTranslations/pl.json +8 -3
- package/codeTranslations/pt-BR.json +16 -11
- package/codeTranslations/pt-PT.json +8 -3
- package/codeTranslations/ru.json +10 -5
- package/codeTranslations/sr.json +62 -0
- package/codeTranslations/tr.json +9 -4
- package/codeTranslations/vi.json +10 -5
- package/codeTranslations/zh-Hans.json +9 -4
- package/codeTranslations/zh-Hant.json +9 -4
- package/lib/__tests__/validateThemeConfig.test.js +277 -3
- package/lib/admonitions.css +35 -0
- package/lib/index.js +31 -8
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme/AnnouncementBar/index.js +10 -16
- package/lib/theme/AnnouncementBar/styles.module.css +25 -30
- package/lib/theme/BackToTopButton/index.js +140 -0
- package/lib/theme/BackToTopButton/styles.module.css +42 -0
- package/lib/theme/BlogArchivePage/index.js +89 -0
- package/lib/theme/BlogLayout/index.js +51 -0
- package/lib/theme/BlogListPage/index.js +10 -21
- package/lib/theme/BlogPostAuthor/index.js +51 -0
- package/lib/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib/theme/BlogPostAuthors/index.js +47 -0
- package/lib/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib/theme/BlogPostItem/index.js +58 -67
- package/lib/theme/BlogPostPage/index.js +37 -24
- package/lib/theme/BlogSidebar/styles.module.css +2 -2
- package/lib/theme/BlogTagsListPage/index.js +8 -44
- package/lib/theme/BlogTagsPostsPage/index.js +24 -38
- package/lib/theme/CodeBlock/index.js +45 -41
- package/lib/theme/CodeBlock/styles.module.css +6 -9
- package/lib/theme/Details/index.js +30 -0
- package/lib/theme/Details/styles.module.css +13 -0
- package/lib/theme/DocItem/index.js +29 -45
- package/lib/theme/DocItem/styles.module.css +5 -9
- package/lib/theme/DocItemFooter/index.js +79 -0
- package/lib/theme/DocItemFooter/styles.module.css +18 -0
- package/lib/theme/DocPage/index.js +25 -49
- package/lib/theme/DocPage/styles.module.css +8 -23
- package/lib/theme/DocSidebar/index.js +45 -227
- package/lib/theme/DocSidebar/styles.module.css +0 -18
- package/lib/theme/DocSidebarItem/index.js +177 -0
- package/lib/theme/DocSidebarItem/styles.module.css +15 -0
- package/lib/theme/DocTagDocListPage/index.js +89 -0
- package/lib/theme/DocTagsListPage/index.js +44 -0
- package/lib/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +37 -18
- package/lib/theme/EditThisPage/index.js +3 -1
- package/lib/theme/Footer/index.js +13 -4
- 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 +11 -5
- package/lib/theme/Logo/index.js +14 -12
- package/lib/theme/MDXComponents/index.js +45 -4
- package/lib/theme/MDXComponents/styles.css +11 -0
- package/lib/theme/MDXPage/index.js +2 -1
- package/lib/theme/Navbar/index.js +164 -42
- package/lib/theme/Navbar/styles.module.css +10 -3
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +27 -123
- package/lib/theme/NavbarItem/DocNavbarItem.js +6 -5
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -12
- package/lib/theme/NavbarItem/DropdownNavbarItem.js +155 -0
- package/lib/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +5 -6
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib/theme/NavbarItem/index.js +31 -11
- package/lib/theme/Seo/index.js +10 -7
- package/lib/theme/SkipToContent/index.js +9 -3
- package/lib/theme/SkipToContent/styles.module.css +1 -0
- package/lib/theme/TOC/index.js +9 -29
- package/lib/theme/TOC/styles.module.css +1 -1
- package/lib/theme/TOCCollapsible/index.js +53 -0
- package/lib/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib/theme/TOCInline/index.js +7 -27
- package/lib/theme/TOCItems/index.js +78 -0
- package/lib/theme/Tabs/__tests__/index.test.js +123 -0
- package/lib/theme/Tabs/index.js +73 -50
- package/lib/theme/Tabs/styles.module.css +0 -13
- package/lib/theme/Tag/index.js +40 -0
- package/lib/theme/Tag/styles.module.css +70 -0
- package/lib/theme/TagsListByLetter/index.js +48 -0
- package/lib/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib/theme/TagsListInline/index.js +44 -0
- package/lib/theme/TagsListInline/styles.module.css +15 -0
- package/lib/theme/ThemedImage/index.js +4 -5
- package/lib/theme/Toggle/index.js +23 -18
- package/lib/theme/Toggle/styles.module.css +91 -0
- package/lib/theme/UserPreferencesProvider/index.js +1 -9
- package/lib/theme/hooks/useHideableNavbar.js +14 -32
- package/lib/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib/theme/hooks/useTheme.js +2 -2
- package/lib/theme/hooks/useWindowSize.js +33 -20
- package/lib/theme/prism-include-languages.js +4 -3
- package/lib/translations.js +4 -4
- package/lib/types.d.ts +338 -138
- package/lib/validateThemeConfig.js +226 -245
- package/lib-next/__tests__/validateThemeConfig.test.js +277 -3
- package/lib-next/admonitions.css +35 -0
- package/lib-next/index.js +33 -7
- package/lib-next/prism-include-languages.js +0 -2
- package/lib-next/theme/AnnouncementBar/index.js +9 -18
- package/lib-next/theme/AnnouncementBar/styles.module.css +25 -30
- package/lib-next/theme/BackToTopButton/index.js +131 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +42 -0
- package/lib-next/theme/BlogArchivePage/index.js +80 -0
- package/lib-next/theme/BlogLayout/index.js +40 -0
- package/lib-next/theme/BlogListPage/index.js +16 -24
- package/lib-next/theme/BlogPostAuthor/index.js +46 -0
- package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
- package/lib-next/theme/BlogPostAuthors/index.js +34 -0
- package/lib-next/theme/BlogPostAuthors/styles.module.css +11 -0
- package/lib-next/theme/BlogPostItem/index.js +79 -86
- package/lib-next/theme/BlogPostPage/index.js +70 -35
- package/lib-next/theme/BlogSidebar/styles.module.css +2 -2
- package/lib-next/theme/BlogTagsListPage/index.js +13 -54
- package/lib-next/theme/BlogTagsPostsPage/index.js +28 -38
- package/lib-next/theme/CodeBlock/index.js +54 -53
- package/lib-next/theme/CodeBlock/styles.module.css +6 -9
- package/lib-next/theme/Details/index.js +20 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocItem/index.js +46 -55
- package/lib-next/theme/DocItem/styles.module.css +5 -9
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/lib-next/theme/DocItemFooter/styles.module.css +18 -0
- package/lib-next/theme/DocPage/index.js +25 -43
- package/lib-next/theme/DocPage/styles.module.css +8 -23
- package/lib-next/theme/DocSidebar/index.js +59 -288
- package/lib-next/theme/DocSidebar/styles.module.css +0 -18
- package/lib-next/theme/DocSidebarItem/index.js +181 -0
- package/lib-next/theme/DocSidebarItem/styles.module.css +15 -0
- package/lib-next/theme/DocTagDocListPage/index.js +89 -0
- package/lib-next/theme/DocTagsListPage/index.js +38 -0
- package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +44 -36
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/Footer/index.js +24 -4
- 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 +17 -6
- package/lib-next/theme/Logo/index.js +23 -19
- package/lib-next/theme/MDXComponents/index.js +34 -7
- package/lib-next/theme/MDXComponents/styles.css +11 -0
- package/lib-next/theme/MDXPage/index.js +10 -2
- package/lib-next/theme/Navbar/index.js +192 -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 +6 -5
- 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 -8
- package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/lib-next/theme/NavbarItem/index.js +25 -12
- package/lib-next/theme/Seo/index.js +11 -7
- package/lib-next/theme/SkipToContent/index.js +5 -6
- package/lib-next/theme/SkipToContent/styles.module.css +1 -0
- package/lib-next/theme/TOC/index.js +12 -36
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/index.js +54 -0
- package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
- package/lib-next/theme/TOCInline/index.js +10 -28
- package/lib-next/theme/TOCItems/index.js +85 -0
- package/lib-next/theme/Tabs/__tests__/index.test.js +142 -0
- package/lib-next/theme/Tabs/index.js +91 -43
- package/lib-next/theme/Tabs/styles.module.css +0 -13
- package/lib-next/theme/Tag/index.js +27 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +42 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemedImage/index.js +5 -6
- package/lib-next/theme/Toggle/index.js +20 -15
- package/lib-next/theme/Toggle/styles.module.css +91 -0
- package/lib-next/theme/UserPreferencesProvider/index.js +0 -4
- package/lib-next/theme/hooks/useHideableNavbar.js +31 -44
- package/lib-next/theme/hooks/useTabGroupChoice.js +2 -4
- package/lib-next/theme/hooks/useTheme.js +2 -2
- package/lib-next/theme/hooks/useWindowSize.js +34 -20
- package/lib-next/theme/prism-include-languages.js +2 -1
- package/lib-next/translations.js +6 -10
- package/lib-next/types.d.ts +338 -138
- package/lib-next/validateThemeConfig.js +134 -110
- package/package.json +24 -19
- package/src/__tests__/validateThemeConfig.test.js +277 -3
- package/src/admonitions.css +35 -0
- package/src/index.ts +44 -14
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/AnnouncementBar/index.tsx +10 -17
- package/src/theme/AnnouncementBar/styles.module.css +25 -30
- package/src/theme/BackToTopButton/index.tsx +142 -0
- package/src/theme/BackToTopButton/styles.module.css +42 -0
- package/src/theme/BlogArchivePage/index.tsx +91 -0
- package/src/theme/BlogLayout/index.tsx +44 -0
- package/src/theme/BlogListPage/index.tsx +17 -24
- 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 +72 -35
- package/src/theme/BlogSidebar/styles.module.css +2 -2
- package/src/theme/BlogTagsListPage/index.tsx +13 -56
- package/src/theme/BlogTagsPostsPage/index.tsx +28 -38
- package/src/theme/CodeBlock/index.tsx +70 -55
- package/src/theme/CodeBlock/styles.module.css +6 -9
- package/src/theme/Details/index.tsx +24 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocItem/index.tsx +49 -55
- package/src/theme/DocItem/styles.module.css +5 -9
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/src/theme/DocItemFooter/styles.module.css +18 -0
- package/src/theme/DocPage/index.tsx +24 -38
- package/src/theme/DocPage/styles.module.css +8 -23
- package/src/theme/DocSidebar/index.tsx +70 -300
- package/src/theme/DocSidebar/styles.module.css +0 -18
- package/src/theme/DocSidebarItem/index.tsx +206 -0
- package/src/theme/DocSidebarItem/styles.module.css +15 -0
- package/src/theme/DocTagDocListPage/index.tsx +89 -0
- package/src/theme/DocTagsListPage/index.tsx +41 -0
- package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +58 -44
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/Footer/index.tsx +26 -4
- 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 +17 -6
- package/src/theme/Logo/index.tsx +19 -15
- 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 +202 -61
- package/src/theme/Navbar/styles.module.css +10 -3
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +42 -154
- package/src/theme/NavbarItem/DocNavbarItem.tsx +11 -14
- 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 -7
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/index.tsx +41 -16
- package/src/theme/Seo/index.tsx +7 -4
- package/src/theme/SkipToContent/index.tsx +5 -6
- package/src/theme/SkipToContent/styles.module.css +1 -0
- package/src/theme/TOC/index.tsx +12 -41
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/index.tsx +58 -0
- package/src/theme/TOCCollapsible/styles.module.css +50 -0
- package/src/theme/TOCInline/index.tsx +13 -32
- package/src/theme/TOCItems/index.tsx +96 -0
- package/src/theme/Tabs/__tests__/index.test.tsx +129 -0
- package/src/theme/Tabs/index.tsx +93 -49
- package/src/theme/Tabs/styles.module.css +0 -13
- package/src/theme/Tag/index.tsx +31 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +45 -0
- package/src/theme/TagsListByLetter/styles.module.css +11 -0
- package/src/theme/TagsListInline/index.tsx +35 -0
- package/src/theme/TagsListInline/styles.module.css +15 -0
- package/src/theme/ThemedImage/index.tsx +6 -6
- package/src/theme/Toggle/index.tsx +20 -15
- package/src/theme/Toggle/styles.module.css +91 -0
- package/src/theme/UserPreferencesProvider/index.tsx +0 -5
- package/src/theme/hooks/useContextualSearchFilters.ts +1 -1
- package/src/theme/hooks/useHideableNavbar.ts +32 -45
- package/src/theme/hooks/useTabGroupChoice.ts +4 -4
- package/src/theme/hooks/useTheme.ts +2 -2
- package/src/theme/hooks/useWindowSize.ts +38 -20
- package/src/theme/prism-include-languages.ts +3 -2
- package/src/translations.ts +6 -10
- package/src/types.d.ts +338 -138
- package/src/{validateThemeConfig.js → validateThemeConfig.ts} +144 -90
- package/tsconfig.json +1 -2
- package/update-code-translations.js +10 -6
- 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/useAnnouncementBar.js +0 -63
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/hooks/useAnnouncementBar.ts +0 -58
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
import {Joi, URISchema} from '@docusaurus/utils-validation';
|
|
9
|
+
import type {ThemeConfig, Validate, ValidationResult} from '@docusaurus/types';
|
|
9
10
|
|
|
10
11
|
const DEFAULT_DOCS_CONFIG = {
|
|
11
12
|
versionPersistence: 'localStorage',
|
|
@@ -40,84 +41,56 @@ const DEFAULT_CONFIG = {
|
|
|
40
41
|
items: [],
|
|
41
42
|
},
|
|
42
43
|
hideableSidebar: false,
|
|
44
|
+
tableOfContents: {
|
|
45
|
+
minHeadingLevel: 2,
|
|
46
|
+
maxHeadingLevel: 3,
|
|
47
|
+
},
|
|
43
48
|
};
|
|
44
49
|
exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
|
|
45
50
|
|
|
46
51
|
const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
|
|
47
52
|
|
|
48
|
-
const
|
|
49
|
-
to: Joi.string(),
|
|
50
|
-
href: URISchema,
|
|
53
|
+
const NavbarItemBaseSchema = Joi.object({
|
|
51
54
|
label: Joi.string(),
|
|
52
55
|
className: Joi.string(),
|
|
53
|
-
prependBaseUrlToHref: Joi.bool(),
|
|
54
56
|
})
|
|
55
57
|
// We allow any unknown attributes on the links
|
|
56
58
|
// (users may need additional attributes like target, aria-role, data-customAttribute...)
|
|
57
59
|
.unknown();
|
|
58
60
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const DefaultNavbarItemSchema = BaseNavbarItemSchema.append({
|
|
63
|
-
items: Joi.array().optional().items(BaseNavbarItemSchema),
|
|
64
|
-
position: NavbarItemPosition,
|
|
61
|
+
const DefaultNavbarItemSchema = NavbarItemBaseSchema.append({
|
|
62
|
+
to: Joi.string(),
|
|
63
|
+
href: URISchema,
|
|
65
64
|
activeBasePath: Joi.string(),
|
|
66
65
|
activeBaseRegex: Joi.string(),
|
|
67
|
-
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
prependBaseUrlToHref: Joi.bool(),
|
|
67
|
+
// This is only triggered in case of a nested dropdown
|
|
68
|
+
items: Joi.forbidden().messages({
|
|
69
|
+
'any.unknown': 'Nested dropdowns are not allowed',
|
|
70
|
+
}),
|
|
71
|
+
})
|
|
72
|
+
.xor('href', 'to')
|
|
73
|
+
.messages({
|
|
74
|
+
'object.xor': 'One and only one between "to" and "href" should be provided',
|
|
75
|
+
});
|
|
71
76
|
|
|
72
|
-
const DocsVersionNavbarItemSchema =
|
|
77
|
+
const DocsVersionNavbarItemSchema = NavbarItemBaseSchema.append({
|
|
73
78
|
type: Joi.string().equal('docsVersion').required(),
|
|
74
|
-
position: NavbarItemPosition,
|
|
75
|
-
label: Joi.string(),
|
|
76
79
|
to: Joi.string(),
|
|
77
80
|
docsPluginId: Joi.string(),
|
|
78
|
-
className: Joi.string(),
|
|
79
81
|
});
|
|
80
82
|
|
|
81
|
-
const
|
|
82
|
-
type: Joi.string().equal('docsVersionDropdown').required(),
|
|
83
|
-
position: NavbarItemPosition,
|
|
84
|
-
docsPluginId: Joi.string(),
|
|
85
|
-
dropdownActiveClassDisabled: Joi.boolean(),
|
|
86
|
-
dropdownItemsBefore: Joi.array().items(BaseNavbarItemSchema).default([]),
|
|
87
|
-
dropdownItemsAfter: Joi.array().items(BaseNavbarItemSchema).default([]),
|
|
88
|
-
className: Joi.string(),
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
const DocItemSchema = Joi.object({
|
|
83
|
+
const DocItemSchema = NavbarItemBaseSchema.append({
|
|
92
84
|
type: Joi.string().equal('doc').required(),
|
|
93
|
-
position: NavbarItemPosition,
|
|
94
85
|
docId: Joi.string().required(),
|
|
95
|
-
label: Joi.string(),
|
|
96
86
|
docsPluginId: Joi.string(),
|
|
97
|
-
activeSidebarClassName: Joi.string().default('navbar__link--active'),
|
|
98
|
-
className: Joi.string(),
|
|
99
87
|
});
|
|
100
88
|
|
|
101
|
-
const
|
|
102
|
-
type: Joi.string().equal('localeDropdown').required(),
|
|
103
|
-
position: NavbarItemPosition,
|
|
104
|
-
dropdownItemsBefore: Joi.array().items(BaseNavbarItemSchema).default([]),
|
|
105
|
-
dropdownItemsAfter: Joi.array().items(BaseNavbarItemSchema).default([]),
|
|
106
|
-
className: Joi.string(),
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
const SearchItemSchema = Joi.object({
|
|
110
|
-
type: Joi.string().equal('search').required(),
|
|
111
|
-
position: NavbarItemPosition,
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
// Can this be made easier? :/
|
|
115
|
-
const isOfType = (type) => {
|
|
116
|
-
let typeSchema = Joi.string().required();
|
|
89
|
+
const itemWithType = (type: string | undefined) => {
|
|
117
90
|
// because equal(undefined) is not supported :/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
91
|
+
const typeSchema = type
|
|
92
|
+
? Joi.string().required().equal(type)
|
|
93
|
+
: Joi.string().forbidden();
|
|
121
94
|
return Joi.object({
|
|
122
95
|
type: typeSchema,
|
|
123
96
|
})
|
|
@@ -125,58 +98,105 @@ const isOfType = (type) => {
|
|
|
125
98
|
.required();
|
|
126
99
|
};
|
|
127
100
|
|
|
128
|
-
const
|
|
101
|
+
const DropdownSubitemSchema = Joi.object({
|
|
102
|
+
position: Joi.forbidden(),
|
|
103
|
+
}).when('.', {
|
|
104
|
+
switch: [
|
|
105
|
+
{
|
|
106
|
+
is: itemWithType('docsVersion'),
|
|
107
|
+
then: DocsVersionNavbarItemSchema,
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
is: itemWithType('doc'),
|
|
111
|
+
then: DocItemSchema,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
is: itemWithType(undefined),
|
|
115
|
+
then: DefaultNavbarItemSchema,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
is: Joi.alternatives().try(
|
|
119
|
+
itemWithType('dropdown'),
|
|
120
|
+
itemWithType('docsVersionDropdown'),
|
|
121
|
+
itemWithType('localeDropdown'),
|
|
122
|
+
itemWithType('search'),
|
|
123
|
+
),
|
|
124
|
+
then: Joi.forbidden().messages({
|
|
125
|
+
'any.unknown': 'Nested dropdowns are not allowed',
|
|
126
|
+
}),
|
|
127
|
+
},
|
|
128
|
+
],
|
|
129
|
+
otherwise: Joi.forbidden().messages({
|
|
130
|
+
'any.unknown': 'Bad navbar item type {.type}',
|
|
131
|
+
}),
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
const DropdownNavbarItemSchema = NavbarItemBaseSchema.append({
|
|
135
|
+
items: Joi.array().items(DropdownSubitemSchema).required(),
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
const DocsVersionDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
|
|
139
|
+
type: Joi.string().equal('docsVersionDropdown').required(),
|
|
140
|
+
docsPluginId: Joi.string(),
|
|
141
|
+
dropdownActiveClassDisabled: Joi.boolean(),
|
|
142
|
+
dropdownItemsBefore: Joi.array().items(DropdownSubitemSchema).default([]),
|
|
143
|
+
dropdownItemsAfter: Joi.array().items(DropdownSubitemSchema).default([]),
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
const LocaleDropdownNavbarItemSchema = NavbarItemBaseSchema.append({
|
|
147
|
+
type: Joi.string().equal('localeDropdown').required(),
|
|
148
|
+
dropdownItemsBefore: Joi.array().items(DropdownSubitemSchema).default([]),
|
|
149
|
+
dropdownItemsAfter: Joi.array().items(DropdownSubitemSchema).default([]),
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
const SearchItemSchema = Joi.object({
|
|
153
|
+
type: Joi.string().equal('search').required(),
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
const NavbarItemSchema = Joi.object({
|
|
157
|
+
position: NavbarItemPosition,
|
|
158
|
+
}).when('.', {
|
|
129
159
|
switch: [
|
|
130
160
|
{
|
|
131
|
-
is:
|
|
161
|
+
is: itemWithType('docsVersion'),
|
|
132
162
|
then: DocsVersionNavbarItemSchema,
|
|
133
163
|
},
|
|
134
164
|
{
|
|
135
|
-
is:
|
|
165
|
+
is: itemWithType('dropdown'),
|
|
166
|
+
then: DropdownNavbarItemSchema,
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
is: itemWithType('docsVersionDropdown'),
|
|
136
170
|
then: DocsVersionDropdownNavbarItemSchema,
|
|
137
171
|
},
|
|
138
172
|
{
|
|
139
|
-
is:
|
|
173
|
+
is: itemWithType('doc'),
|
|
140
174
|
then: DocItemSchema,
|
|
141
175
|
},
|
|
142
176
|
{
|
|
143
|
-
is:
|
|
177
|
+
is: itemWithType('localeDropdown'),
|
|
144
178
|
then: LocaleDropdownNavbarItemSchema,
|
|
145
179
|
},
|
|
146
180
|
{
|
|
147
|
-
is:
|
|
181
|
+
is: itemWithType('search'),
|
|
148
182
|
then: SearchItemSchema,
|
|
149
183
|
},
|
|
150
184
|
{
|
|
151
|
-
is:
|
|
152
|
-
then: Joi.
|
|
153
|
-
|
|
185
|
+
is: itemWithType(undefined),
|
|
186
|
+
then: Joi.object().when('.', {
|
|
187
|
+
// Dropdown item can be specified without type field
|
|
188
|
+
is: Joi.object({
|
|
189
|
+
items: Joi.array().required(),
|
|
190
|
+
}).unknown(),
|
|
191
|
+
then: DropdownNavbarItemSchema,
|
|
192
|
+
otherwise: DefaultNavbarItemSchema,
|
|
154
193
|
}),
|
|
155
194
|
},
|
|
156
195
|
],
|
|
157
|
-
otherwise:
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/*
|
|
161
|
-
const NavbarItemSchema = Joi.object({
|
|
162
|
-
type: Joi.string().only(['docsVersion'])
|
|
163
|
-
})
|
|
164
|
-
.when(Joi.object({ type: 'docsVersion' }).unknown(), {
|
|
165
|
-
then: Joi.object({ pepperoni: Joi.boolean() })
|
|
166
|
-
})
|
|
167
|
-
.when(Joi.object().unknown(), {
|
|
168
|
-
then: Joi.object({ croutons: Joi.boolean() })
|
|
169
|
-
})
|
|
170
|
-
|
|
171
|
-
*/
|
|
172
|
-
|
|
173
|
-
/*
|
|
174
|
-
const NavbarItemSchema = Joi.object().when('type', {
|
|
175
|
-
is: Joi.valid('docsVersion'),
|
|
176
|
-
then: DocsVersionNavbarItemSchema,
|
|
177
|
-
otherwise: DefaultNavbarItemSchema,
|
|
196
|
+
otherwise: Joi.forbidden().messages({
|
|
197
|
+
'any.unknown': 'Bad navbar item type {.type}',
|
|
198
|
+
}),
|
|
178
199
|
});
|
|
179
|
-
*/
|
|
180
200
|
|
|
181
201
|
const ColorModeSchema = Joi.object({
|
|
182
202
|
defaultMode: Joi.string()
|
|
@@ -231,12 +251,12 @@ const CustomCssSchema = Joi.alternatives()
|
|
|
231
251
|
|
|
232
252
|
const ThemeConfigSchema = Joi.object({
|
|
233
253
|
// TODO temporary (@alpha-58)
|
|
234
|
-
disableDarkMode: Joi.any().forbidden(
|
|
254
|
+
disableDarkMode: Joi.any().forbidden().messages({
|
|
235
255
|
'any.unknown':
|
|
236
256
|
'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true',
|
|
237
257
|
}),
|
|
238
258
|
// TODO temporary (@alpha-58)
|
|
239
|
-
defaultDarkMode: Joi.any().forbidden(
|
|
259
|
+
defaultDarkMode: Joi.any().forbidden().messages({
|
|
240
260
|
'any.unknown':
|
|
241
261
|
'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"',
|
|
242
262
|
}),
|
|
@@ -249,7 +269,7 @@ const ThemeConfigSchema = Joi.object({
|
|
|
249
269
|
.default(DEFAULT_CONFIG.metadatas),
|
|
250
270
|
announcementBar: Joi.object({
|
|
251
271
|
id: Joi.string().default('announcement-bar'),
|
|
252
|
-
content: Joi.string(),
|
|
272
|
+
content: Joi.string().required(),
|
|
253
273
|
backgroundColor: Joi.string(),
|
|
254
274
|
textColor: Joi.string(),
|
|
255
275
|
isCloseable: Joi.bool().default(true),
|
|
@@ -270,6 +290,8 @@ const ThemeConfigSchema = Joi.object({
|
|
|
270
290
|
alt: Joi.string().allow(''),
|
|
271
291
|
src: Joi.string().required(),
|
|
272
292
|
srcDark: Joi.string(),
|
|
293
|
+
width: Joi.alternatives().try(Joi.string(), Joi.number()),
|
|
294
|
+
height: Joi.alternatives().try(Joi.string(), Joi.number()),
|
|
273
295
|
href: Joi.string(),
|
|
274
296
|
target: Joi.string(),
|
|
275
297
|
}),
|
|
@@ -280,6 +302,9 @@ const ThemeConfigSchema = Joi.object({
|
|
|
280
302
|
alt: Joi.string().allow(''),
|
|
281
303
|
src: Joi.string(),
|
|
282
304
|
srcDark: Joi.string(),
|
|
305
|
+
// TODO infer this from reading the image
|
|
306
|
+
width: Joi.alternatives().try(Joi.string(), Joi.number()),
|
|
307
|
+
height: Joi.alternatives().try(Joi.string(), Joi.number()),
|
|
283
308
|
href: Joi.string(),
|
|
284
309
|
}),
|
|
285
310
|
copyright: Joi.string(),
|
|
@@ -309,9 +334,38 @@ const ThemeConfigSchema = Joi.object({
|
|
|
309
334
|
.default(DEFAULT_CONFIG.prism)
|
|
310
335
|
.unknown(),
|
|
311
336
|
hideableSidebar: Joi.bool().default(DEFAULT_CONFIG.hideableSidebar),
|
|
337
|
+
sidebarCollapsible: Joi.forbidden().messages({
|
|
338
|
+
'any.unknown':
|
|
339
|
+
'The themeConfig.sidebarCollapsible has been moved to docs plugin options. See: https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-docs',
|
|
340
|
+
}),
|
|
341
|
+
tableOfContents: Joi.object({
|
|
342
|
+
minHeadingLevel: Joi.number()
|
|
343
|
+
.default(DEFAULT_CONFIG.tableOfContents.minHeadingLevel)
|
|
344
|
+
.when('maxHeadingLevel', {
|
|
345
|
+
is: Joi.exist(),
|
|
346
|
+
then: Joi.number()
|
|
347
|
+
.integer()
|
|
348
|
+
.min(2)
|
|
349
|
+
.max(6)
|
|
350
|
+
.max(Joi.ref('maxHeadingLevel')),
|
|
351
|
+
otherwise: Joi.number().integer().min(2).max(6),
|
|
352
|
+
}),
|
|
353
|
+
maxHeadingLevel: Joi.number()
|
|
354
|
+
.integer()
|
|
355
|
+
.min(2)
|
|
356
|
+
.max(6)
|
|
357
|
+
.default(DEFAULT_CONFIG.tableOfContents.maxHeadingLevel),
|
|
358
|
+
}).default(DEFAULT_CONFIG.tableOfContents),
|
|
312
359
|
});
|
|
313
|
-
exports.ThemeConfigSchema = ThemeConfigSchema;
|
|
314
360
|
|
|
315
|
-
|
|
361
|
+
export {ThemeConfigSchema};
|
|
362
|
+
|
|
363
|
+
export function validateThemeConfig({
|
|
364
|
+
validate,
|
|
365
|
+
themeConfig,
|
|
366
|
+
}: {
|
|
367
|
+
validate: Validate<ThemeConfig>;
|
|
368
|
+
themeConfig: ThemeConfig;
|
|
369
|
+
}): ValidationResult<ThemeConfig> {
|
|
316
370
|
return validate(ThemeConfigSchema, themeConfig);
|
|
317
|
-
}
|
|
371
|
+
}
|
package/tsconfig.json
CHANGED
|
@@ -14,6 +14,7 @@ const {mapValues, pickBy, difference, orderBy} = require('lodash');
|
|
|
14
14
|
const CodeDirPaths = [
|
|
15
15
|
path.join(__dirname, 'lib-next'),
|
|
16
16
|
// TODO other themes should rather define their own translations in the future?
|
|
17
|
+
path.join(__dirname, '..', 'docusaurus-theme-common', 'lib'),
|
|
17
18
|
path.join(__dirname, '..', 'docusaurus-theme-search-algolia', 'src', 'theme'),
|
|
18
19
|
path.join(__dirname, '..', 'docusaurus-theme-live-codeblock', 'src', 'theme'),
|
|
19
20
|
path.join(__dirname, '..', 'docusaurus-plugin-pwa', 'src', 'theme'),
|
|
@@ -45,7 +46,7 @@ function logSection(title) {
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
function logKeys(keys) {
|
|
48
|
-
return `Keys:\n- ${keys.join('\n- ')}
|
|
49
|
+
return `Keys:\n- ${keys.join('\n- ')}`;
|
|
49
50
|
}
|
|
50
51
|
|
|
51
52
|
async function extractThemeCodeMessages() {
|
|
@@ -53,11 +54,12 @@ async function extractThemeCodeMessages() {
|
|
|
53
54
|
const {
|
|
54
55
|
globSourceCodeFilePaths,
|
|
55
56
|
extractAllSourceCodeFileTranslations,
|
|
57
|
+
// eslint-disable-next-line global-require
|
|
56
58
|
} = require('@docusaurus/core/lib/server/translations/translationsExtractor');
|
|
57
59
|
|
|
58
|
-
const filePaths = (
|
|
59
|
-
|
|
60
|
-
)
|
|
60
|
+
const filePaths = (await globSourceCodeFilePaths(CodeDirPaths)).filter(
|
|
61
|
+
(filePath) => ['.js', '.jsx'].includes(path.extname(filePath)),
|
|
62
|
+
);
|
|
61
63
|
|
|
62
64
|
const filesExtractedTranslations = await extractAllSourceCodeFileTranslations(
|
|
63
65
|
filePaths,
|
|
@@ -148,10 +150,12 @@ ${logKeys(unknownMessages)}`),
|
|
|
148
150
|
|
|
149
151
|
const newBaseMessagesDescriptions = Object.entries(newBaseMessages).reduce(
|
|
150
152
|
(acc, [key]) => {
|
|
153
|
+
const codeTranslation = codeExtractedTranslations[key];
|
|
151
154
|
return {
|
|
152
155
|
...acc,
|
|
153
|
-
[`${key}${DescriptionSuffix}`]:
|
|
154
|
-
.description
|
|
156
|
+
[`${key}${DescriptionSuffix}`]: codeTranslation
|
|
157
|
+
? codeTranslation.description
|
|
158
|
+
: undefined,
|
|
155
159
|
};
|
|
156
160
|
},
|
|
157
161
|
{},
|
|
@@ -14,7 +14,7 @@ const {mapValues, pickBy} = require('lodash');
|
|
|
14
14
|
jest.setTimeout(15000);
|
|
15
15
|
|
|
16
16
|
describe('update-code-translations', () => {
|
|
17
|
-
test(`to have base.json contain all the translations extracted from the theme. Please run "yarn workspace @docusaurus/theme-classic update-code-translations" to keep base.json up-to-date.`, async () => {
|
|
17
|
+
test(`to have base.json contain EXACTLY all the translations extracted from the theme. Please run "yarn workspace @docusaurus/theme-classic update-code-translations" to keep base.json up-to-date.`, async () => {
|
|
18
18
|
const baseMessages = pickBy(
|
|
19
19
|
JSON.parse(
|
|
20
20
|
await fs.readFile(
|
package/update.js
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
const chalk = require('chalk');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
const fs = require('fs-extra');
|
|
4
|
+
const globby = require('globby');
|
|
5
|
+
const {mapValues, pickBy, difference, orderBy} = require('lodash');
|
|
6
|
+
|
|
7
|
+
async function extractThemeCodeMessages(dirPath) {
|
|
8
|
+
// Unsafe import, should we create a package for the translationsExtractor ?
|
|
9
|
+
const {
|
|
10
|
+
globSourceCodeFilePaths,
|
|
11
|
+
extractAllSourceCodeFileTranslations,
|
|
12
|
+
// eslint-disable-next-line global-require
|
|
13
|
+
} = require('@docusaurus/core/lib/server/translations/translationsExtractor');
|
|
14
|
+
|
|
15
|
+
const filePaths = (await globSourceCodeFilePaths([dirPath])).filter(
|
|
16
|
+
(filePath) => ['.js', '.jsx'].includes(path.extname(filePath)),
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
const filesExtractedTranslations = await extractAllSourceCodeFileTranslations(
|
|
20
|
+
filePaths,
|
|
21
|
+
{
|
|
22
|
+
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
|
23
|
+
},
|
|
24
|
+
);
|
|
25
|
+
|
|
26
|
+
filesExtractedTranslations.forEach((fileExtractedTranslations) => {
|
|
27
|
+
fileExtractedTranslations.warnings.forEach((warning) => {
|
|
28
|
+
throw new Error(`
|
|
29
|
+
Please make sure all theme translations are static!
|
|
30
|
+
Some warnings were found!
|
|
31
|
+
|
|
32
|
+
${warning}
|
|
33
|
+
`);
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const translations = filesExtractedTranslations.reduce(
|
|
38
|
+
(acc, extractedTranslations) => {
|
|
39
|
+
return {...acc, ...extractedTranslations.translations};
|
|
40
|
+
},
|
|
41
|
+
{},
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
return translations;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function sortObjectKeys(obj) {
|
|
48
|
+
let keys = Object.keys(obj);
|
|
49
|
+
// keys = orderBy(keys, [(k) => removeDescriptionSuffix(k)]);
|
|
50
|
+
return keys.reduce((acc, key) => {
|
|
51
|
+
acc[key] = obj[key];
|
|
52
|
+
return acc;
|
|
53
|
+
}, {});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function writeMessagesFile(filePath, messages) {
|
|
57
|
+
const sortedMessages = sortObjectKeys(messages);
|
|
58
|
+
const content = `${JSON.stringify(sortedMessages, null, 2)}\n`; // \n makes prettier happy
|
|
59
|
+
await fs.outputFile(filePath, content);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function main() {
|
|
63
|
+
const codeTranslationsDir = path.join(__dirname, 'src', 'codeTranslations');
|
|
64
|
+
const baseFile = path.join(codeTranslationsDir, 'base.json');
|
|
65
|
+
const localesFiles = (await globby(codeTranslationsDir)).filter(
|
|
66
|
+
(filepath) => path.extname(filepath) === '.json',
|
|
67
|
+
// (filepath) => filepath.endsWith('base.json'),
|
|
68
|
+
);
|
|
69
|
+
let baseMessages = JSON.parse(await fs.readFile(baseFile));
|
|
70
|
+
|
|
71
|
+
const targetDirs = [
|
|
72
|
+
path.join(
|
|
73
|
+
__dirname,
|
|
74
|
+
'..',
|
|
75
|
+
'docusaurus-theme-search-algolia',
|
|
76
|
+
'src',
|
|
77
|
+
// 'theme',
|
|
78
|
+
),
|
|
79
|
+
path.join(
|
|
80
|
+
__dirname,
|
|
81
|
+
'..',
|
|
82
|
+
'docusaurus-theme-live-codeblock',
|
|
83
|
+
'src',
|
|
84
|
+
// 'theme',
|
|
85
|
+
),
|
|
86
|
+
path.join(__dirname, '..', 'docusaurus-plugin-pwa', 'src'),
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const convertToObject = (array) =>
|
|
90
|
+
array.reduce((acc, [key, value]) => {
|
|
91
|
+
return {...acc, ...{[key]: value}};
|
|
92
|
+
}, {});
|
|
93
|
+
|
|
94
|
+
const removePluginMessages = (content, keys) =>
|
|
95
|
+
Object.entries(content).filter(([key]) => !keys.includes(key));
|
|
96
|
+
|
|
97
|
+
for (const targetDir of targetDirs) {
|
|
98
|
+
console.log(targetDir);
|
|
99
|
+
|
|
100
|
+
const pluginExtractedTranslations = await extractThemeCodeMessages(
|
|
101
|
+
targetDir,
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
for (const localeFile of localesFiles) {
|
|
105
|
+
console.log(localeFile);
|
|
106
|
+
|
|
107
|
+
const targetFile = JSON.parse(await fs.readFile(localeFile));
|
|
108
|
+
const destFile = path.join(
|
|
109
|
+
targetDir,
|
|
110
|
+
'codeTranslations',
|
|
111
|
+
path.basename(localeFile),
|
|
112
|
+
);
|
|
113
|
+
|
|
114
|
+
const pluginMessages = Object.entries(targetFile).filter(
|
|
115
|
+
([key, value]) => {
|
|
116
|
+
return Object.keys(pluginExtractedTranslations).filter((message) =>
|
|
117
|
+
key.startsWith(message),
|
|
118
|
+
).length;
|
|
119
|
+
},
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
const pluginMessagesKeys = pluginMessages.map(([key]) => key);
|
|
123
|
+
|
|
124
|
+
console.log(1, pluginMessagesKeys);
|
|
125
|
+
|
|
126
|
+
// await writeMessagesFile(destFile, convertToObject(pluginMessages));
|
|
127
|
+
|
|
128
|
+
const newTargetFile = removePluginMessages(
|
|
129
|
+
targetFile,
|
|
130
|
+
pluginMessagesKeys,
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
baseMessages = pickBy(
|
|
134
|
+
baseMessages,
|
|
135
|
+
(_, key) => !pluginMessagesKeys.includes(key),
|
|
136
|
+
);
|
|
137
|
+
// await writeMessagesFile(localeFile, convertToObject(newTargetFile));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// console.log(baseMessages);
|
|
142
|
+
// await writeMessagesFile(baseFile, baseMessages);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
function run() {
|
|
146
|
+
main().then(() => {
|
|
147
|
+
console.log(1);
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
exports.run = run;
|
|
@@ -1,103 +0,0 @@
|
|
|
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
|
-
/**
|
|
9
|
-
* Styles for React Toggle
|
|
10
|
-
* copied over because we want to allow user to swizzle it and modify the css
|
|
11
|
-
* and also to make sure its compatible with our dark mode
|
|
12
|
-
* https://github.com/aaronshaf/react-toggle/blob/master/style.css
|
|
13
|
-
*/
|
|
14
|
-
.react-toggle {
|
|
15
|
-
touch-action: pan-x;
|
|
16
|
-
position: relative;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
user-select: none;
|
|
19
|
-
-webkit-tap-highlight-color: transparent;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.react-toggle-screenreader-only {
|
|
23
|
-
border: 0;
|
|
24
|
-
clip: rect(0 0 0 0);
|
|
25
|
-
height: 1px;
|
|
26
|
-
margin: -1px;
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
position: absolute;
|
|
29
|
-
width: 1px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.react-toggle--disabled {
|
|
33
|
-
cursor: not-allowed;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.react-toggle-track {
|
|
37
|
-
width: 50px;
|
|
38
|
-
height: 24px;
|
|
39
|
-
border-radius: 30px;
|
|
40
|
-
background-color: #4d4d4d;
|
|
41
|
-
transition: all 0.2s ease;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.react-toggle-track-check {
|
|
45
|
-
position: absolute;
|
|
46
|
-
width: 14px;
|
|
47
|
-
height: 10px;
|
|
48
|
-
top: 0px;
|
|
49
|
-
bottom: 0px;
|
|
50
|
-
margin: auto 0;
|
|
51
|
-
left: 8px;
|
|
52
|
-
opacity: 0;
|
|
53
|
-
transition: opacity 0.25s ease;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-check,
|
|
57
|
-
.react-toggle--checked .react-toggle-track-check {
|
|
58
|
-
opacity: 1;
|
|
59
|
-
transition: opacity 0.25s ease;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.react-toggle-track-x {
|
|
63
|
-
position: absolute;
|
|
64
|
-
width: 10px;
|
|
65
|
-
height: 10px;
|
|
66
|
-
top: 0px;
|
|
67
|
-
bottom: 0px;
|
|
68
|
-
margin: auto 0;
|
|
69
|
-
right: 10px;
|
|
70
|
-
opacity: 1;
|
|
71
|
-
transition: opacity 0.25s ease;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
[data-theme='dark'] .react-toggle .react-toggle-track-x,
|
|
75
|
-
.react-toggle--checked .react-toggle-track-x {
|
|
76
|
-
opacity: 0;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.react-toggle-thumb {
|
|
80
|
-
position: absolute;
|
|
81
|
-
top: 1px;
|
|
82
|
-
left: 1px;
|
|
83
|
-
width: 22px;
|
|
84
|
-
height: 22px;
|
|
85
|
-
border: 1px solid #4d4d4d;
|
|
86
|
-
border-radius: 50%;
|
|
87
|
-
background-color: #fafafa;
|
|
88
|
-
transition: all 0.25s ease;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
[data-theme='dark'] .react-toggle .react-toggle-thumb,
|
|
92
|
-
.react-toggle--checked .react-toggle-thumb {
|
|
93
|
-
left: 27px;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.react-toggle--focus .react-toggle-thumb,
|
|
97
|
-
.react-toggle:hover .react-toggle-thumb {
|
|
98
|
-
box-shadow: 0px 0px 2px 3px var(--ifm-color-primary);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.react-toggle:active:not(.react-toggle--disabled) .react-toggle-thumb {
|
|
102
|
-
box-shadow: 0px 0px 5px 5px var(--ifm-color-primary);
|
|
103
|
-
}
|