@docusaurus/theme-classic 2.0.0-beta.13 → 2.0.0-beta.15

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.
Files changed (299) hide show
  1. package/README.md +1 -1
  2. package/lib/index.js +7 -16
  3. package/lib/theme-classic.d.ts +111 -188
  4. package/lib/translations.js +13 -4
  5. package/lib/validateThemeConfig.js +18 -4
  6. package/lib-next/theme/Admonition/index.js +101 -0
  7. package/lib-next/theme/BackToTopButton/styles.module.css +1 -1
  8. package/lib-next/theme/BlogListPaginator/index.js +12 -12
  9. package/lib-next/theme/BlogPostAuthor/index.js +1 -1
  10. package/lib-next/theme/BlogPostAuthors/index.js +12 -2
  11. package/lib-next/theme/BlogPostAuthors/styles.module.css +10 -0
  12. package/lib-next/theme/BlogPostItem/index.js +12 -15
  13. package/lib-next/theme/BlogPostPage/index.js +10 -7
  14. package/lib-next/theme/BlogPostPaginator/index.js +11 -15
  15. package/lib-next/theme/BlogSidebar/styles.module.css +2 -0
  16. package/lib-next/theme/CodeBlock/index.js +51 -10
  17. package/lib-next/theme/CodeBlock/styles.module.css +18 -7
  18. package/lib-next/theme/DocCard/styles.module.css +3 -3
  19. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +6 -3
  20. package/lib-next/theme/DocItem/index.js +9 -6
  21. package/lib-next/theme/DocItem/styles.module.css +2 -2
  22. package/lib-next/theme/DocPage/index.js +7 -3
  23. package/lib-next/theme/DocPage/styles.module.css +1 -0
  24. package/lib-next/theme/DocPaginator/index.js +11 -13
  25. package/lib-next/theme/DocSidebar/index.js +2 -2
  26. package/lib-next/theme/DocSidebar/styles.module.css +1 -0
  27. package/lib-next/theme/DocSidebarItem/index.js +43 -21
  28. package/lib-next/theme/DocSidebarItem/styles.module.css +1 -0
  29. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  30. package/{lib/theme/DocSidebarItem → lib-next/theme/DocSidebarItems}/styles.module.css +1 -0
  31. package/lib-next/theme/DocVersionBanner/index.js +4 -1
  32. package/lib-next/theme/Footer/index.js +73 -35
  33. package/lib-next/theme/Footer/styles.module.css +2 -1
  34. package/lib-next/theme/Heading/index.js +39 -43
  35. package/lib-next/theme/Heading/styles.css +1 -1
  36. package/lib-next/theme/Layout/index.js +1 -2
  37. package/lib-next/theme/LayoutHead/index.js +5 -9
  38. package/lib-next/theme/LayoutProviders/index.js +6 -6
  39. package/lib-next/theme/MDXComponents/index.js +18 -31
  40. package/lib-next/theme/MDXComponents/styles.css +4 -0
  41. package/lib-next/theme/MDXPage/index.js +3 -10
  42. package/lib-next/theme/Navbar/index.js +6 -6
  43. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +4 -66
  44. package/lib-next/theme/NavbarItem/DocNavbarItem.js +5 -2
  45. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  46. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +5 -3
  47. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  48. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +6 -7
  49. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  50. package/lib-next/theme/NavbarItem/index.js +1 -2
  51. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  52. package/lib-next/theme/PaginatorNavLink/index.js +20 -0
  53. package/lib-next/theme/SkipToContent/index.js +1 -1
  54. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  55. package/lib-next/theme/TOCCollapsible/styles.module.css +2 -2
  56. package/lib-next/theme/Tabs/__tests__/index.test.js +8 -6
  57. package/lib-next/theme/Tabs/index.js +20 -10
  58. package/lib-next/theme/Tag/styles.module.css +4 -4
  59. package/lib-next/theme/ThemedImage/index.js +2 -2
  60. package/lib-next/theme/Toggle/styles.module.css +16 -15
  61. package/lib-next/theme/prism-include-languages.js +10 -3
  62. package/package.json +17 -19
  63. package/src/index.ts +12 -26
  64. package/src/theme/Admonition/index.tsx +106 -0
  65. package/src/theme/BackToTopButton/styles.module.css +1 -1
  66. package/src/theme/BlogListPaginator/index.tsx +12 -12
  67. package/src/theme/BlogPostAuthor/index.tsx +1 -1
  68. package/src/theme/BlogPostAuthors/index.tsx +12 -2
  69. package/src/theme/BlogPostAuthors/styles.module.css +10 -0
  70. package/src/theme/BlogPostItem/index.tsx +13 -15
  71. package/src/theme/BlogPostPage/index.tsx +10 -7
  72. package/src/theme/BlogPostPaginator/index.tsx +11 -15
  73. package/src/theme/BlogSidebar/styles.module.css +2 -0
  74. package/src/theme/CodeBlock/index.tsx +52 -11
  75. package/src/theme/CodeBlock/styles.module.css +18 -7
  76. package/src/theme/DocCard/index.tsx +2 -2
  77. package/src/theme/DocCard/styles.module.css +3 -3
  78. package/src/theme/DocCardList/index.tsx +1 -1
  79. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +7 -3
  80. package/src/theme/DocItem/index.tsx +9 -6
  81. package/src/theme/DocItem/styles.module.css +2 -2
  82. package/src/theme/DocItemFooter/index.tsx +1 -1
  83. package/src/theme/DocPage/index.tsx +8 -4
  84. package/src/theme/DocPage/styles.module.css +1 -0
  85. package/src/theme/DocPaginator/index.tsx +13 -15
  86. package/src/theme/DocSidebar/index.tsx +3 -3
  87. package/src/theme/DocSidebar/styles.module.css +1 -0
  88. package/src/theme/DocSidebarItem/index.tsx +34 -23
  89. package/src/theme/DocSidebarItem/styles.module.css +1 -0
  90. package/src/theme/DocSidebarItems/index.tsx +32 -0
  91. package/{lib/theme/DocItemFooter → src/theme/DocSidebarItems}/styles.module.css +10 -8
  92. package/src/theme/DocVersionBanner/index.tsx +3 -3
  93. package/src/theme/Footer/index.tsx +84 -38
  94. package/src/theme/Footer/styles.module.css +2 -1
  95. package/src/theme/Heading/index.tsx +39 -47
  96. package/src/theme/Heading/styles.css +1 -1
  97. package/src/theme/Layout/index.tsx +1 -2
  98. package/src/theme/LayoutHead/index.tsx +4 -8
  99. package/src/theme/LayoutProviders/index.tsx +6 -6
  100. package/src/theme/MDXComponents/index.tsx +26 -37
  101. package/src/theme/MDXComponents/styles.css +4 -0
  102. package/src/theme/MDXPage/index.tsx +3 -11
  103. package/src/theme/Navbar/index.tsx +7 -7
  104. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +6 -62
  105. package/src/theme/NavbarItem/DocNavbarItem.tsx +8 -5
  106. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  107. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +9 -6
  108. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +2 -2
  109. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +6 -7
  110. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  111. package/src/theme/NavbarItem/index.tsx +3 -5
  112. package/{lib-next/theme/hooks/styles.css → src/theme/NavbarItem/utils.ts} +3 -3
  113. package/src/theme/PaginatorNavLink/index.tsx +22 -0
  114. package/src/theme/SkipToContent/index.tsx +1 -1
  115. package/src/theme/SkipToContent/styles.module.css +7 -0
  116. package/src/theme/TOCCollapsible/styles.module.css +2 -2
  117. package/src/theme/TOCItems/index.tsx +2 -2
  118. package/src/theme/Tabs/index.tsx +25 -10
  119. package/src/theme/Tag/styles.module.css +4 -4
  120. package/src/theme/TagsListByLetter/index.tsx +1 -1
  121. package/src/theme/ThemedImage/index.tsx +2 -2
  122. package/src/theme/Toggle/index.tsx +1 -1
  123. package/src/theme/Toggle/styles.module.css +16 -15
  124. package/src/theme/prism-include-languages.ts +10 -3
  125. package/src/theme-classic.d.ts +111 -188
  126. package/src/translations.ts +36 -16
  127. package/src/validateThemeConfig.ts +25 -4
  128. package/babel.config.js +0 -35
  129. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  130. package/lib/__tests__/translations.test.js +0 -112
  131. package/lib/__tests__/validateThemeConfig.test.js +0 -607
  132. package/lib/theme/AnnouncementBar/index.js +0 -68
  133. package/lib/theme/AnnouncementBar/styles.module.css +0 -63
  134. package/lib/theme/BackToTopButton/index.js +0 -140
  135. package/lib/theme/BackToTopButton/styles.module.css +0 -42
  136. package/lib/theme/BlogArchivePage/index.js +0 -89
  137. package/lib/theme/BlogLayout/index.js +0 -51
  138. package/lib/theme/BlogListPage/index.js +0 -60
  139. package/lib/theme/BlogListPaginator/index.js +0 -63
  140. package/lib/theme/BlogPostAuthor/index.js +0 -51
  141. package/lib/theme/BlogPostAuthor/styles.module.css +0 -12
  142. package/lib/theme/BlogPostAuthors/index.js +0 -47
  143. package/lib/theme/BlogPostAuthors/styles.module.css +0 -11
  144. package/lib/theme/BlogPostItem/index.js +0 -152
  145. package/lib/theme/BlogPostItem/styles.module.css +0 -18
  146. package/lib/theme/BlogPostPage/index.js +0 -82
  147. package/lib/theme/BlogPostPaginator/index.js +0 -64
  148. package/lib/theme/BlogSidebar/index.js +0 -49
  149. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  150. package/lib/theme/BlogTagsListPage/index.js +0 -40
  151. package/lib/theme/BlogTagsPostsPage/index.js +0 -86
  152. package/lib/theme/CodeBlock/index.js +0 -133
  153. package/lib/theme/CodeBlock/styles.module.css +0 -65
  154. package/lib/theme/Details/index.js +0 -30
  155. package/lib/theme/Details/styles.module.css +0 -13
  156. package/lib/theme/DocCard/index.js +0 -84
  157. package/lib/theme/DocCard/styles.module.css +0 -43
  158. package/lib/theme/DocCardList/index.js +0 -28
  159. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +0 -57
  160. package/lib/theme/DocCategoryGeneratedIndexPage/styles.module.css +0 -18
  161. package/lib/theme/DocItem/index.js +0 -112
  162. package/lib/theme/DocItem/styles.module.css +0 -22
  163. package/lib/theme/DocItemFooter/index.js +0 -79
  164. package/lib/theme/DocPage/index.js +0 -154
  165. package/lib/theme/DocPage/styles.module.css +0 -85
  166. package/lib/theme/DocPaginator/index.js +0 -62
  167. package/lib/theme/DocSidebar/index.js +0 -134
  168. package/lib/theme/DocSidebar/styles.module.css +0 -106
  169. package/lib/theme/DocSidebarItem/index.js +0 -209
  170. package/lib/theme/DocTagDocListPage/index.js +0 -89
  171. package/lib/theme/DocTagsListPage/index.js +0 -44
  172. package/lib/theme/DocVersionBadge/index.js +0 -34
  173. package/lib/theme/DocVersionBanner/index.js +0 -130
  174. package/lib/theme/EditThisPage/index.js +0 -33
  175. package/lib/theme/ErrorPageContent.js +0 -43
  176. package/lib/theme/Footer/index.js +0 -119
  177. package/lib/theme/Footer/styles.module.css +0 -15
  178. package/lib/theme/Heading/index.js +0 -71
  179. package/lib/theme/Heading/styles.css +0 -22
  180. package/lib/theme/Heading/styles.module.css +0 -19
  181. package/lib/theme/IconArrow/index.js +0 -28
  182. package/lib/theme/IconClose/index.js +0 -31
  183. package/lib/theme/IconEdit/index.js +0 -34
  184. package/lib/theme/IconEdit/styles.module.css +0 -11
  185. package/lib/theme/IconExternalLink/index.js +0 -30
  186. package/lib/theme/IconExternalLink/styles.module.css +0 -12
  187. package/lib/theme/IconLanguage/index.js +0 -29
  188. package/lib/theme/IconMenu/index.js +0 -30
  189. package/lib/theme/LastUpdated/index.js +0 -63
  190. package/lib/theme/Layout/index.js +0 -68
  191. package/lib/theme/Layout/styles.css +0 -27
  192. package/lib/theme/LayoutHead/index.js +0 -149
  193. package/lib/theme/LayoutProviders/index.js +0 -40
  194. package/lib/theme/Logo/index.js +0 -62
  195. package/lib/theme/MDXComponents/index.js +0 -106
  196. package/lib/theme/MDXComponents/styles.css +0 -11
  197. package/lib/theme/MDXPage/index.js +0 -67
  198. package/lib/theme/MDXPage/styles.module.css +0 -10
  199. package/lib/theme/Navbar/index.js +0 -267
  200. package/lib/theme/Navbar/styles.module.css +0 -27
  201. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -113
  202. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -62
  203. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -83
  204. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  205. package/lib/theme/NavbarItem/DropdownNavbarItem.js +0 -155
  206. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.js +0 -68
  207. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +0 -11
  208. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  209. package/lib/theme/NavbarItem/index.js +0 -74
  210. package/lib/theme/NotFound.js +0 -57
  211. package/lib/theme/SearchBar.js +0 -15
  212. package/lib/theme/SearchMetadata/index.js +0 -33
  213. package/lib/theme/Seo/index.js +0 -52
  214. package/lib/theme/SkipToContent/index.js +0 -71
  215. package/lib/theme/SkipToContent/styles.module.css +0 -14
  216. package/lib/theme/TOC/index.js +0 -39
  217. package/lib/theme/TOC/styles.module.css +0 -23
  218. package/lib/theme/TOCCollapsible/index.js +0 -53
  219. package/lib/theme/TOCCollapsible/styles.module.css +0 -50
  220. package/lib/theme/TOCInline/index.js +0 -33
  221. package/lib/theme/TOCInline/styles.module.css +0 -12
  222. package/lib/theme/TOCItems/index.js +0 -78
  223. package/lib/theme/TabItem/index.js +0 -32
  224. package/lib/theme/Tabs/__tests__/index.test.js +0 -123
  225. package/lib/theme/Tabs/index.js +0 -173
  226. package/lib/theme/Tabs/styles.module.css +0 -10
  227. package/lib/theme/Tag/index.js +0 -40
  228. package/lib/theme/Tag/styles.module.css +0 -70
  229. package/lib/theme/TagsListByLetter/index.js +0 -48
  230. package/lib/theme/TagsListByLetter/styles.module.css +0 -11
  231. package/lib/theme/TagsListInline/index.js +0 -44
  232. package/lib/theme/TagsListInline/styles.module.css +0 -15
  233. package/lib/theme/ThemeContext.js +0 -21
  234. package/lib/theme/ThemeProvider/index.js +0 -43
  235. package/lib/theme/ThemedImage/index.js +0 -47
  236. package/lib/theme/ThemedImage/styles.module.css +0 -18
  237. package/lib/theme/Toggle/index.js +0 -91
  238. package/lib/theme/Toggle/styles.module.css +0 -105
  239. package/lib/theme/UserPreferencesContext.js +0 -18
  240. package/lib/theme/UserPreferencesProvider/index.js +0 -41
  241. package/lib/theme/hooks/styles.css +0 -10
  242. package/lib/theme/hooks/useDocs.js +0 -18
  243. package/lib/theme/hooks/useHideableNavbar.js +0 -74
  244. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  245. package/lib/theme/hooks/useLocationHash.js +0 -28
  246. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  247. package/lib/theme/hooks/usePrismTheme.js +0 -36
  248. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  249. package/lib/theme/hooks/useTheme.js +0 -97
  250. package/lib/theme/hooks/useThemeContext.js +0 -31
  251. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  252. package/lib/theme/hooks/useWindowSize.js +0 -68
  253. package/lib/theme/prism-include-languages.js +0 -40
  254. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  255. package/lib-next/__tests__/translations.test.js +0 -128
  256. package/lib-next/__tests__/validateThemeConfig.test.js +0 -607
  257. package/lib-next/admonitions.css +0 -35
  258. package/lib-next/deps.d.ts +0 -13
  259. package/lib-next/index.js +0 -227
  260. package/lib-next/prism-include-languages.js +0 -9
  261. package/lib-next/theme/ThemeContext.js +0 -9
  262. package/lib-next/theme/ThemeProvider/index.js +0 -28
  263. package/lib-next/theme/UserPreferencesProvider/index.js +0 -27
  264. package/lib-next/theme/hooks/useDocs.js +0 -10
  265. package/lib-next/theme/hooks/useHideableNavbar.js +0 -66
  266. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  267. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  268. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  269. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  270. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  271. package/lib-next/theme/hooks/useTheme.js +0 -81
  272. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  273. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  274. package/lib-next/theme/hooks/useWindowSize.js +0 -59
  275. package/lib-next/theme-classic.d.ts +0 -806
  276. package/lib-next/translations.js +0 -141
  277. package/lib-next/types.d.ts +0 -11
  278. package/lib-next/validateThemeConfig.js +0 -344
  279. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  280. package/src/__tests__/translations.test.ts +0 -116
  281. package/src/__tests__/validateThemeConfig.test.js +0 -607
  282. package/src/theme/Tabs/__tests__/index.test.tsx +0 -129
  283. package/src/theme/ThemeContext.ts +0 -15
  284. package/src/theme/ThemeProvider/index.tsx +0 -28
  285. package/src/theme/UserPreferencesContext.ts +0 -12
  286. package/src/theme/UserPreferencesProvider/index.tsx +0 -30
  287. package/src/theme/hooks/styles.css +0 -10
  288. package/src/theme/hooks/useDocs.ts +0 -11
  289. package/src/theme/hooks/useHideableNavbar.ts +0 -72
  290. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  291. package/src/theme/hooks/useLocationHash.ts +0 -25
  292. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  293. package/src/theme/hooks/usePrismTheme.ts +0 -22
  294. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  295. package/src/theme/hooks/useTheme.ts +0 -91
  296. package/src/theme/hooks/useThemeContext.ts +0 -23
  297. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  298. package/src/theme/hooks/useWindowSize.ts +0 -69
  299. package/tsconfig.json +0 -11
@@ -1,152 +0,0 @@
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 _clsx = _interopRequireDefault(require("clsx"));
11
-
12
- var _react2 = require("@mdx-js/react");
13
-
14
- var _Translate = _interopRequireWildcard(require("@docusaurus/Translate"));
15
-
16
- var _Link = _interopRequireDefault(require("@docusaurus/Link"));
17
-
18
- var _useBaseUrl = require("@docusaurus/useBaseUrl");
19
-
20
- var _themeCommon = require("@docusaurus/theme-common");
21
-
22
- var _MDXComponents = _interopRequireDefault(require("@theme/MDXComponents"));
23
-
24
- var _EditThisPage = _interopRequireDefault(require("@theme/EditThisPage"));
25
-
26
- var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
27
-
28
- var _TagsListInline = _interopRequireDefault(require("@theme/TagsListInline"));
29
-
30
- var _BlogPostAuthors = _interopRequireDefault(require("@theme/BlogPostAuthors"));
31
-
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); }
33
-
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; }
35
-
36
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
-
38
- /**
39
- * Copyright (c) Facebook, Inc. and its affiliates.
40
- *
41
- * This source code is licensed under the MIT license found in the
42
- * LICENSE file in the root directory of this source tree.
43
- */
44
- // Very simple pluralization: probably good enough for now
45
- function useReadingTimePlural() {
46
- const {
47
- selectMessage
48
- } = (0, _themeCommon.usePluralForm)();
49
- return readingTimeFloat => {
50
- const readingTime = Math.ceil(readingTimeFloat);
51
- return selectMessage(readingTime, (0, _Translate.translate)({
52
- id: 'theme.blog.post.readingTime.plurals',
53
- description: 'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',
54
- message: 'One min read|{readingTime} min read'
55
- }, {
56
- readingTime
57
- }));
58
- };
59
- }
60
-
61
- function BlogPostItem(props) {
62
- var _assets$image;
63
-
64
- const readingTimePlural = useReadingTimePlural();
65
- const {
66
- withBaseUrl
67
- } = (0, _useBaseUrl.useBaseUrlUtils)();
68
- const {
69
- children,
70
- frontMatter,
71
- assets,
72
- metadata,
73
- truncated,
74
- isBlogPostPage = false
75
- } = props;
76
- const {
77
- date,
78
- formattedDate,
79
- permalink,
80
- tags,
81
- readingTime,
82
- title,
83
- editUrl,
84
- authors
85
- } = metadata;
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;
89
-
90
- const renderPostHeader = () => {
91
- const TitleHeading = isBlogPostPage ? 'h1' : 'h2';
92
- return <header>
93
- <TitleHeading className={_stylesModule.default.blogPostTitle} itemProp="headline">
94
- {isBlogPostPage ? title : <_Link.default itemProp="url" to={permalink}>
95
- {title}
96
- </_Link.default>}
97
- </TitleHeading>
98
- <div className={(0, _clsx.default)(_stylesModule.default.blogPostData, 'margin-vert--md')}>
99
- <time dateTime={date} itemProp="datePublished">
100
- {formattedDate}
101
- </time>
102
-
103
- {typeof readingTime !== 'undefined' && <>
104
- {' · '}
105
- {readingTimePlural(readingTime)}
106
- </>}
107
- </div>
108
- <_BlogPostAuthors.default authors={authors} assets={assets} />
109
- </header>;
110
- };
111
-
112
- return <article className={!isBlogPostPage ? 'margin-bottom--xl' : undefined} itemProp="blogPost" itemScope itemType="http://schema.org/BlogPosting">
113
- {renderPostHeader()}
114
-
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
138
- })}>
139
- <_Link.default to={metadata.permalink} aria-label={`Read more about ${title}`}>
140
- <b>
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
143
- </_Translate.default>
144
- </b>
145
- </_Link.default>
146
- </div>}
147
- </footer>}
148
- </article>;
149
- }
150
-
151
- var _default = BlogPostItem;
152
- exports.default = _default;
@@ -1,18 +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
- .blogPostTitle {
9
- font-size: 3rem;
10
- }
11
-
12
- .blogPostData {
13
- font-size: 0.9rem;
14
- }
15
-
16
- .blogPostDetailsFull {
17
- flex-direction: column;
18
- }
@@ -1,82 +0,0 @@
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 _Seo = _interopRequireDefault(require("@theme/Seo"));
11
-
12
- var _BlogLayout = _interopRequireDefault(require("@theme/BlogLayout"));
13
-
14
- var _BlogPostItem = _interopRequireDefault(require("@theme/BlogPostItem"));
15
-
16
- var _BlogPostPaginator = _interopRequireDefault(require("@theme/BlogPostPaginator"));
17
-
18
- var _themeCommon = require("@docusaurus/theme-common");
19
-
20
- var _TOC = _interopRequireDefault(require("@theme/TOC"));
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- /**
25
- * Copyright (c) Facebook, Inc. and its affiliates.
26
- *
27
- * This source code is licensed under the MIT license found in the
28
- * LICENSE file in the root directory of this source tree.
29
- */
30
- function BlogPostPage(props) {
31
- var _assets$image;
32
-
33
- const {
34
- content: BlogPostContents,
35
- sidebar
36
- } = props;
37
- const {
38
- // TODO this frontmatter is not validated/normalized, it's the raw user-provided one. We should expose normalized one too!
39
- frontMatter,
40
- assets,
41
- metadata
42
- } = BlogPostContents;
43
- const {
44
- title,
45
- description,
46
- nextItem,
47
- prevItem,
48
- date,
49
- tags,
50
- authors
51
- } = metadata;
52
- const {
53
- hide_table_of_contents: hideTableOfContents,
54
- keywords,
55
- toc_min_heading_level: tocMinHeadingLevel,
56
- toc_max_heading_level: tocMaxHeadingLevel
57
- } = frontMatter;
58
- const image = (_assets$image = assets.image) !== null && _assets$image !== void 0 ? _assets$image : frontMatter.image;
59
- return <_BlogLayout.default wrapperClassName={_themeCommon.ThemeClassNames.wrapper.blogPages} pageClassName={_themeCommon.ThemeClassNames.page.blogPostPage} sidebar={sidebar} toc={!hideTableOfContents && BlogPostContents.toc && BlogPostContents.toc.length > 0 ? <_TOC.default toc={BlogPostContents.toc} minHeadingLevel={tocMinHeadingLevel} maxHeadingLevel={tocMaxHeadingLevel} /> : undefined}>
60
- <_Seo.default // TODO refactor needed: it's a bit annoying but Seo MUST be inside BlogLayout
61
- // otherwise default image (set by BlogLayout) would shadow the custom blog post image
62
- title={title} description={description} keywords={keywords} image={image}>
63
- <meta property="og:type" content="article" />
64
- <meta property="article:published_time" content={date} />
65
-
66
- {
67
- /* TODO double check those article metas array syntaxes, see https://ogp.me/#array */
68
- }
69
- {authors.some(author => author.url) && <meta property="article:author" content={authors.map(author => author.url).filter(Boolean).join(',')} />}
70
- {tags.length > 0 && <meta property="article:tag" content={tags.map(tag => tag.label).join(',')} />}
71
- </_Seo.default>
72
-
73
- <_BlogPostItem.default frontMatter={frontMatter} assets={assets} metadata={metadata} isBlogPostPage>
74
- <BlogPostContents />
75
- </_BlogPostItem.default>
76
-
77
- {(nextItem || prevItem) && <_BlogPostPaginator.default nextItem={nextItem} prevItem={prevItem} />}
78
- </_BlogLayout.default>;
79
- }
80
-
81
- var _default = BlogPostPage;
82
- exports.default = _default;
@@ -1,64 +0,0 @@
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 _Translate = _interopRequireWildcard(require("@docusaurus/Translate"));
11
-
12
- var _Link = _interopRequireDefault(require("@docusaurus/Link"));
13
-
14
- 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); }
15
-
16
- 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; }
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- /**
21
- * Copyright (c) Facebook, Inc. and its affiliates.
22
- *
23
- * This source code is licensed under the MIT license found in the
24
- * LICENSE file in the root directory of this source tree.
25
- */
26
- function BlogPostPaginator(props) {
27
- const {
28
- nextItem,
29
- prevItem
30
- } = props;
31
- return <nav className="pagination-nav docusaurus-mt-lg" aria-label={(0, _Translate.translate)({
32
- id: 'theme.blog.post.paginator.navAriaLabel',
33
- message: 'Blog post page navigation',
34
- description: 'The ARIA label for the blog posts pagination'
35
- })}>
36
- <div className="pagination-nav__item">
37
- {prevItem && <_Link.default className="pagination-nav__link" to={prevItem.permalink}>
38
- <div className="pagination-nav__sublabel">
39
- <_Translate.default id="theme.blog.post.paginator.newerPost" description="The blog post button label to navigate to the newer/previous post">
40
- Newer Post
41
- </_Translate.default>
42
- </div>
43
- <div className="pagination-nav__label">
44
- &laquo; {prevItem.title}
45
- </div>
46
- </_Link.default>}
47
- </div>
48
- <div className="pagination-nav__item pagination-nav__item--next">
49
- {nextItem && <_Link.default className="pagination-nav__link" to={nextItem.permalink}>
50
- <div className="pagination-nav__sublabel">
51
- <_Translate.default id="theme.blog.post.paginator.olderPost" description="The blog post button label to navigate to the older/next post">
52
- Older Post
53
- </_Translate.default>
54
- </div>
55
- <div className="pagination-nav__label">
56
- {nextItem.title} &raquo;
57
- </div>
58
- </_Link.default>}
59
- </div>
60
- </nav>;
61
- }
62
-
63
- var _default = BlogPostPaginator;
64
- exports.default = _default;
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = BlogSidebar;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _clsx = _interopRequireDefault(require("clsx"));
11
-
12
- var _Link = _interopRequireDefault(require("@docusaurus/Link"));
13
-
14
- var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
15
-
16
- var _Translate = require("@docusaurus/Translate");
17
-
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
- /**
21
- * Copyright (c) Facebook, Inc. and its affiliates.
22
- *
23
- * This source code is licensed under the MIT license found in the
24
- * LICENSE file in the root directory of this source tree.
25
- */
26
- function BlogSidebar({
27
- sidebar
28
- }) {
29
- if (sidebar.items.length === 0) {
30
- return null;
31
- }
32
-
33
- return <nav className={(0, _clsx.default)(_stylesModule.default.sidebar, 'thin-scrollbar')} aria-label={(0, _Translate.translate)({
34
- id: 'theme.blog.sidebar.navAriaLabel',
35
- message: 'Blog recent posts navigation',
36
- description: 'The ARIA label for recent posts in the blog sidebar'
37
- })}>
38
- <div className={(0, _clsx.default)(_stylesModule.default.sidebarItemTitle, 'margin-bottom--md')}>
39
- {sidebar.title}
40
- </div>
41
- <ul className={_stylesModule.default.sidebarItemList}>
42
- {sidebar.items.map(item => <li key={item.permalink} className={_stylesModule.default.sidebarItem}>
43
- <_Link.default isNavLink to={item.permalink} className={_stylesModule.default.sidebarItemLink} activeClassName={_stylesModule.default.sidebarItemLinkActive}>
44
- {item.title}
45
- </_Link.default>
46
- </li>)}
47
- </ul>
48
- </nav>;
49
- }
@@ -1,44 +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
- .sidebar {
9
- max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem));
10
- overflow-y: auto;
11
- position: sticky;
12
- top: calc(var(--ifm-navbar-height) + 2rem);
13
- }
14
-
15
- .sidebarItemTitle {
16
- font-size: var(--ifm-h3-font-size);
17
- font-weight: var(--ifm-font-weight-bold);
18
- }
19
-
20
- .sidebarItemList {
21
- list-style: none;
22
- font-size: 0.9rem;
23
- padding-left: 0;
24
- }
25
-
26
- .sidebarItem {
27
- margin-top: 0.7rem;
28
- }
29
-
30
- .sidebarItemLink {
31
- color: var(--ifm-font-color-base);
32
- }
33
- .sidebarItemLink:hover {
34
- text-decoration: none;
35
- }
36
- .sidebarItemLinkActive {
37
- color: var(--ifm-color-primary) !important;
38
- }
39
-
40
- @media (max-width: 996px) {
41
- .sidebar {
42
- display: none;
43
- }
44
- }
@@ -1,40 +0,0 @@
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 _BlogLayout = _interopRequireDefault(require("@theme/BlogLayout"));
11
-
12
- var _TagsListByLetter = _interopRequireDefault(require("@theme/TagsListByLetter"));
13
-
14
- var _themeCommon = require("@docusaurus/theme-common");
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 BlogTagsListPage(props) {
25
- const {
26
- tags,
27
- sidebar
28
- } = props;
29
- const title = (0, _themeCommon.translateTagsPageTitle)();
30
- return <_BlogLayout.default title={title} wrapperClassName={_themeCommon.ThemeClassNames.wrapper.blogPages} pageClassName={_themeCommon.ThemeClassNames.page.blogTagsListPage} searchMetadata={{
31
- // assign unique search tag to exclude this page from search results!
32
- tag: 'blog_tags_list'
33
- }} sidebar={sidebar}>
34
- <h1>{title}</h1>
35
- <_TagsListByLetter.default tags={Object.values(tags)} />
36
- </_BlogLayout.default>;
37
- }
38
-
39
- var _default = BlogTagsListPage;
40
- exports.default = _default;
@@ -1,86 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = BlogTagsPostsPage;
7
-
8
- var _react = _interopRequireDefault(require("react"));
9
-
10
- var _Link = _interopRequireDefault(require("@docusaurus/Link"));
11
-
12
- var _BlogLayout = _interopRequireDefault(require("@theme/BlogLayout"));
13
-
14
- var _BlogPostItem = _interopRequireDefault(require("@theme/BlogPostItem"));
15
-
16
- var _Translate = _interopRequireWildcard(require("@docusaurus/Translate"));
17
-
18
- var _themeCommon = require("@docusaurus/theme-common");
19
-
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); }
21
-
22
- 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; }
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- /**
27
- * Copyright (c) Facebook, Inc. and its affiliates.
28
- *
29
- * This source code is licensed under the MIT license found in the
30
- * LICENSE file in the root directory of this source tree.
31
- */
32
- // Very simple pluralization: probably good enough for now
33
- function useBlogPostsPlural() {
34
- const {
35
- selectMessage
36
- } = (0, _themeCommon.usePluralForm)();
37
- return count => selectMessage(count, (0, _Translate.translate)({
38
- id: 'theme.blog.post.plurals',
39
- description: 'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',
40
- message: 'One post|{count} posts'
41
- }, {
42
- count
43
- }));
44
- }
45
-
46
- function BlogTagsPostsPage(props) {
47
- const {
48
- metadata,
49
- items,
50
- sidebar
51
- } = props;
52
- const {
53
- allTagsPath,
54
- name: tagName,
55
- count
56
- } = metadata;
57
- const blogPostsPlural = useBlogPostsPlural();
58
- const title = (0, _Translate.translate)({
59
- id: 'theme.blog.tagTitle',
60
- description: 'The title of the page for a blog tag',
61
- message: '{nPosts} tagged with "{tagName}"'
62
- }, {
63
- nPosts: blogPostsPlural(count),
64
- tagName
65
- });
66
- return <_BlogLayout.default title={title} wrapperClassName={_themeCommon.ThemeClassNames.wrapper.blogPages} pageClassName={_themeCommon.ThemeClassNames.page.blogTagPostListPage} searchMetadata={{
67
- // assign unique search tag to exclude this page from search results!
68
- tag: 'blog_tags_posts'
69
- }} sidebar={sidebar}>
70
- <header className="margin-bottom--xl">
71
- <h1>{title}</h1>
72
-
73
- <_Link.default href={allTagsPath}>
74
- <_Translate.default id="theme.tags.tagsPageLink" description="The label of the link targeting the tag list page">
75
- View All Tags
76
- </_Translate.default>
77
- </_Link.default>
78
- </header>
79
-
80
- {items.map(({
81
- content: BlogPostContent
82
- }) => <_BlogPostItem.default key={BlogPostContent.metadata.permalink} frontMatter={BlogPostContent.frontMatter} assets={BlogPostContent.assets} metadata={BlogPostContent.metadata} truncated>
83
- <BlogPostContent />
84
- </_BlogPostItem.default>)}
85
- </_BlogLayout.default>;
86
- }
@@ -1,133 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = CodeBlock;
7
-
8
- var _react = _interopRequireWildcard(require("react"));
9
-
10
- var _clsx = _interopRequireDefault(require("clsx"));
11
-
12
- var _prismReactRenderer = _interopRequireWildcard(require("prism-react-renderer"));
13
-
14
- var _copyTextToClipboard = _interopRequireDefault(require("copy-text-to-clipboard"));
15
-
16
- var _Translate = _interopRequireWildcard(require("@docusaurus/Translate"));
17
-
18
- var _themeCommon = require("@docusaurus/theme-common");
19
-
20
- var _usePrismTheme = _interopRequireDefault(require("@theme/hooks/usePrismTheme"));
21
-
22
- var _stylesModule = _interopRequireDefault(require("./styles.module.css"));
23
-
24
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
-
26
- 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); }
27
-
28
- 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; }
29
-
30
- /**
31
- * Copyright (c) Facebook, Inc. and its affiliates.
32
- *
33
- * This source code is licensed under the MIT license found in the
34
- * LICENSE file in the root directory of this source tree.
35
- */
36
- function CodeBlock({
37
- children,
38
- className: blockClassName,
39
- metastring,
40
- title
41
- }) {
42
- var _parseLanguage;
43
-
44
- const {
45
- prism
46
- } = (0, _themeCommon.useThemeConfig)();
47
- const [showCopied, setShowCopied] = (0, _react.useState)(false);
48
- const [mounted, setMounted] = (0, _react.useState)(false); // The Prism theme on SSR is always the default theme but the site theme
49
- // can be in a different mode. React hydration doesn't update DOM styles
50
- // that come from SSR. Hence force a re-render after mounting to apply the
51
- // current relevant styles. There will be a flash seen of the original
52
- // styles seen using this current approach but that's probably ok. Fixing
53
- // the flash will require changing the theming approach and is not worth it
54
- // at this point.
55
-
56
- (0, _react.useEffect)(() => {
57
- setMounted(true);
58
- }, []); // TODO: the title is provided by MDX as props automatically
59
- // so we probably don't need to parse the metastring
60
- // (note: title="xyz" => title prop still has the quotes)
61
-
62
- const codeBlockTitle = (0, _themeCommon.parseCodeBlockTitle)(metastring) || title;
63
- const prismTheme = (0, _usePrismTheme.default)(); // In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
64
-
65
- const content = Array.isArray(children) ? children.join('') : children;
66
- const language = (_parseLanguage = (0, _themeCommon.parseLanguage)(blockClassName)) !== null && _parseLanguage !== void 0 ? _parseLanguage : prism.defaultLanguage;
67
- const {
68
- highlightLines,
69
- code
70
- } = (0, _themeCommon.parseLines)(content, metastring, language);
71
-
72
- const handleCopyCode = () => {
73
- (0, _copyTextToClipboard.default)(code);
74
- setShowCopied(true);
75
- setTimeout(() => setShowCopied(false), 2000);
76
- };
77
-
78
- return <_prismReactRenderer.default {..._prismReactRenderer.defaultProps} key={String(mounted)} theme={prismTheme} code={code} language={language}>
79
- {({
80
- className,
81
- style,
82
- tokens,
83
- getLineProps,
84
- getTokenProps
85
- }) => <div className={(0, _clsx.default)(_stylesModule.default.codeBlockContainer, blockClassName)}>
86
- {codeBlockTitle && <div style={style} className={_stylesModule.default.codeBlockTitle}>
87
- {codeBlockTitle}
88
- </div>}
89
- <div className={(0, _clsx.default)(_stylesModule.default.codeBlockContent, language)}>
90
- <pre
91
- /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
92
- tabIndex={0} className={(0, _clsx.default)(className, _stylesModule.default.codeBlock, 'thin-scrollbar')} style={style}>
93
- <code className={_stylesModule.default.codeBlockLines}>
94
- {tokens.map((line, i) => {
95
- if (line.length === 1 && line[0].content === '\n') {
96
- line[0].content = '';
97
- }
98
-
99
- const lineProps = getLineProps({
100
- line,
101
- key: i
102
- });
103
-
104
- if (highlightLines.includes(i)) {
105
- lineProps.className += ' docusaurus-highlight-code-line';
106
- }
107
-
108
- return <span key={i} {...lineProps}>
109
- {line.map((token, key) => <span key={key} {...getTokenProps({
110
- token,
111
- key
112
- })} />)}
113
- <br />
114
- </span>;
115
- })}
116
- </code>
117
- </pre>
118
-
119
- <button type="button" aria-label={(0, _Translate.translate)({
120
- id: 'theme.CodeBlock.copyButtonAriaLabel',
121
- message: 'Copy code to clipboard',
122
- description: 'The ARIA label for copy code blocks button'
123
- })} className={(0, _clsx.default)(_stylesModule.default.copyButton, 'clean-btn')} onClick={handleCopyCode}>
124
- {showCopied ? <_Translate.default id="theme.CodeBlock.copied" description="The copied button label on code blocks">
125
- Copied
126
- </_Translate.default> : <_Translate.default id="theme.CodeBlock.copy" description="The copy button label on code blocks">
127
- Copy
128
- </_Translate.default>}
129
- </button>
130
- </div>
131
- </div>}
132
- </_prismReactRenderer.default>;
133
- }