@docusaurus/theme-classic 2.0.0-beta.15a2b59f9 → 2.0.0-beta.17

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 (407) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/{lib-next/theme/Toggle/styles.module.css → lib/deps.d.ts} +5 -9
  4. package/lib/getSwizzleConfig.js +125 -0
  5. package/lib/index.js +36 -41
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +771 -0
  8. package/lib/translations.js +40 -34
  9. package/lib/types.d.ts +0 -587
  10. package/lib/validateThemeConfig.js +242 -250
  11. package/lib-next/theme/Admonition/index.js +101 -0
  12. package/lib-next/theme/AnnouncementBar/index.js +8 -16
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
  14. package/lib-next/theme/BackToTopButton/index.js +131 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +80 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +18 -29
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +52 -0
  21. package/{lib/theme/IconEdit → lib-next/theme/BlogPostAuthor}/styles.module.css +4 -3
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/{src/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
  24. package/lib-next/theme/BlogPostItem/index.js +94 -96
  25. package/lib-next/theme/BlogPostPage/index.js +75 -39
  26. package/lib-next/theme/BlogPostPaginator/index.js +12 -19
  27. package/lib-next/theme/BlogSidebar/index.js +11 -13
  28. package/lib-next/theme/BlogSidebar/styles.module.css +4 -2
  29. package/lib-next/theme/BlogTagsListPage/index.js +15 -59
  30. package/lib-next/theme/BlogTagsPostsPage/index.js +33 -41
  31. package/lib-next/theme/CodeBlock/index.js +64 -154
  32. package/lib-next/theme/CodeBlock/styles.module.css +17 -9
  33. package/lib-next/theme/ColorModeToggle/index.js +83 -0
  34. package/lib-next/theme/ColorModeToggle/styles.module.css +51 -0
  35. package/lib-next/theme/Details/index.js +21 -0
  36. package/lib-next/theme/Details/styles.module.css +13 -0
  37. package/lib-next/theme/DocBreadcrumbs/index.js +76 -0
  38. package/lib-next/theme/DocBreadcrumbs/styles.module.css +26 -0
  39. package/lib-next/theme/DocCard/index.js +91 -0
  40. package/lib-next/theme/DocCard/styles.module.css +43 -0
  41. package/lib-next/theme/DocCardList/index.js +19 -0
  42. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +54 -0
  43. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  44. package/lib-next/theme/DocItem/index.js +53 -58
  45. package/lib-next/theme/DocItem/styles.module.css +6 -10
  46. package/lib-next/theme/DocItemFooter/index.js +79 -0
  47. package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
  48. package/lib-next/theme/DocPage/index.js +54 -55
  49. package/lib-next/theme/DocPage/styles.module.css +9 -3
  50. package/lib-next/theme/DocPaginator/index.js +15 -24
  51. package/lib-next/theme/DocSidebar/index.js +65 -286
  52. package/lib-next/theme/DocSidebar/styles.module.css +5 -22
  53. package/lib-next/theme/DocSidebarItem/index.js +264 -0
  54. package/{lib/theme/BlogPostItem → lib-next/theme/DocSidebarItem}/styles.module.css +5 -10
  55. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  56. package/lib-next/theme/DocTagDocListPage/index.js +89 -0
  57. package/lib-next/theme/DocTagsListPage/index.js +35 -0
  58. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  59. package/lib-next/theme/DocVersionBanner/index.js +32 -15
  60. package/lib-next/theme/EditThisPage/index.js +6 -1
  61. package/lib-next/theme/ErrorPageContent.js +35 -0
  62. package/lib-next/theme/Footer/index.js +95 -40
  63. package/lib-next/theme/Footer/styles.module.css +2 -1
  64. package/lib-next/theme/Heading/index.js +39 -48
  65. package/lib-next/theme/Heading/styles.module.css +25 -5
  66. package/lib-next/theme/IconArrow/index.js +2 -5
  67. package/lib-next/theme/IconClose/index.js +23 -0
  68. package/lib-next/theme/IconDarkMode/index.js +17 -0
  69. package/lib-next/theme/IconEdit/index.js +2 -5
  70. package/lib-next/theme/IconExternalLink/index.js +2 -5
  71. package/lib-next/theme/IconLanguage/index.js +5 -8
  72. package/lib-next/theme/IconLightMode/index.js +17 -0
  73. package/lib-next/theme/IconMenu/index.js +7 -5
  74. package/lib-next/theme/LastUpdated/index.js +3 -2
  75. package/lib-next/theme/Layout/index.js +5 -7
  76. package/lib-next/theme/LayoutHead/index.js +27 -32
  77. package/lib-next/theme/LayoutProviders/index.js +15 -9
  78. package/lib-next/theme/Logo/index.js +25 -24
  79. package/lib-next/theme/MDXComponents/index.js +59 -30
  80. package/{src/theme/hooks → lib-next/theme/MDXComponents}/styles.css +7 -2
  81. package/lib-next/theme/MDXPage/index.js +10 -12
  82. package/lib-next/theme/Navbar/index.js +199 -64
  83. package/lib-next/theme/Navbar/styles.module.css +10 -3
  84. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +35 -201
  85. package/lib-next/theme/NavbarItem/DocNavbarItem.js +11 -8
  86. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  87. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +34 -20
  88. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  89. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +156 -0
  90. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  91. package/{lib/theme/hooks/styles.css → lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
  92. package/lib-next/theme/NavbarItem/NavbarNavLink.js +70 -0
  93. package/lib-next/theme/NavbarItem/index.js +26 -14
  94. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  95. package/lib-next/theme/NotFound.js +1 -4
  96. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  97. package/lib-next/theme/SearchBar.js +1 -1
  98. package/lib-next/theme/SearchMetadata/index.js +34 -0
  99. package/lib-next/theme/Seo/index.js +11 -7
  100. package/lib-next/theme/SkipToContent/index.js +3 -5
  101. package/lib-next/theme/SkipToContent/styles.module.css +7 -0
  102. package/lib-next/theme/TOC/index.js +12 -39
  103. package/lib-next/theme/TOC/styles.module.css +1 -1
  104. package/lib-next/theme/TOCCollapsible/index.js +54 -0
  105. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  106. package/lib-next/theme/TOCInline/index.js +10 -31
  107. package/lib-next/theme/TOCItems/index.js +85 -0
  108. package/lib-next/theme/TabItem/index.js +1 -4
  109. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  110. package/lib-next/theme/Tabs/index.js +108 -50
  111. package/lib-next/theme/Tabs/styles.module.css +0 -13
  112. package/lib-next/theme/Tag/index.js +24 -0
  113. package/lib-next/theme/Tag/styles.module.css +70 -0
  114. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  115. package/lib-next/theme/{hooks/styles.css → TagsListByLetter/styles.module.css} +3 -2
  116. package/lib-next/theme/TagsListInline/index.js +31 -0
  117. package/lib-next/theme/TagsListInline/styles.module.css +15 -0
  118. package/lib-next/theme/ThemedImage/index.js +7 -10
  119. package/lib-next/theme/ThemedImage/styles.module.css +2 -2
  120. package/lib-next/theme/prism-include-languages.js +17 -15
  121. package/package.json +31 -31
  122. package/src/admonitions.css +35 -0
  123. package/src/deps.d.ts +13 -0
  124. package/src/getSwizzleConfig.ts +123 -0
  125. package/src/index.ts +39 -61
  126. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  127. package/src/theme/Admonition/index.tsx +106 -0
  128. package/src/theme/AnnouncementBar/index.tsx +9 -15
  129. package/src/theme/AnnouncementBar/styles.module.css +23 -32
  130. package/src/theme/BackToTopButton/index.tsx +143 -0
  131. package/src/theme/BackToTopButton/styles.module.css +44 -0
  132. package/src/theme/BlogArchivePage/index.tsx +91 -0
  133. package/src/theme/BlogLayout/index.tsx +42 -0
  134. package/src/theme/BlogListPage/index.tsx +19 -28
  135. package/src/theme/BlogListPaginator/index.tsx +13 -15
  136. package/src/theme/BlogPostAuthor/index.tsx +54 -0
  137. package/{lib/theme/MDXPage → src/theme/BlogPostAuthor}/styles.module.css +4 -2
  138. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  139. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  140. package/src/theme/BlogPostItem/index.tsx +84 -90
  141. package/src/theme/BlogPostPage/index.tsx +77 -38
  142. package/src/theme/BlogPostPaginator/index.tsx +12 -18
  143. package/src/theme/BlogSidebar/index.tsx +11 -13
  144. package/src/theme/BlogSidebar/styles.module.css +4 -2
  145. package/src/theme/BlogTagsListPage/index.tsx +15 -60
  146. package/src/theme/BlogTagsPostsPage/index.tsx +32 -40
  147. package/src/theme/CodeBlock/index.tsx +68 -156
  148. package/src/theme/CodeBlock/styles.module.css +17 -9
  149. package/src/theme/ColorModeToggle/index.tsx +92 -0
  150. package/src/theme/ColorModeToggle/styles.module.css +51 -0
  151. package/src/theme/Details/index.tsx +25 -0
  152. package/src/theme/Details/styles.module.css +13 -0
  153. package/src/theme/DocBreadcrumbs/index.tsx +91 -0
  154. package/src/theme/DocBreadcrumbs/styles.module.css +26 -0
  155. package/src/theme/DocCard/index.tsx +109 -0
  156. package/src/theme/DocCard/styles.module.css +43 -0
  157. package/src/theme/DocCardList/index.tsx +27 -0
  158. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +59 -0
  159. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  160. package/src/theme/DocItem/index.tsx +56 -58
  161. package/src/theme/DocItem/styles.module.css +6 -10
  162. package/src/theme/DocItemFooter/index.tsx +91 -0
  163. package/{lib/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
  164. package/src/theme/DocPage/index.tsx +53 -49
  165. package/src/theme/DocPage/styles.module.css +9 -3
  166. package/src/theme/DocPaginator/index.tsx +15 -23
  167. package/src/theme/DocSidebar/index.tsx +76 -298
  168. package/src/theme/DocSidebar/styles.module.css +5 -22
  169. package/src/theme/DocSidebarItem/index.tsx +283 -0
  170. package/src/theme/DocSidebarItem/styles.module.css +13 -0
  171. package/src/theme/DocSidebarItems/index.tsx +32 -0
  172. package/src/theme/DocTagDocListPage/index.tsx +89 -0
  173. package/src/theme/DocTagsListPage/index.tsx +39 -0
  174. package/src/theme/DocVersionBadge/index.tsx +35 -0
  175. package/src/theme/DocVersionBanner/index.tsx +49 -22
  176. package/src/theme/EditThisPage/index.tsx +6 -1
  177. package/src/theme/ErrorPageContent.tsx +41 -0
  178. package/src/theme/Footer/index.tsx +109 -44
  179. package/src/theme/Footer/styles.module.css +2 -1
  180. package/src/theme/Heading/index.tsx +38 -53
  181. package/src/theme/Heading/styles.module.css +25 -5
  182. package/src/theme/IconArrow/index.tsx +2 -4
  183. package/src/theme/IconClose/index.tsx +26 -0
  184. package/src/theme/IconDarkMode/index.tsx +20 -0
  185. package/src/theme/IconEdit/index.tsx +5 -4
  186. package/src/theme/IconExternalLink/index.tsx +3 -5
  187. package/src/theme/IconLanguage/index.tsx +6 -8
  188. package/src/theme/IconLightMode/index.tsx +20 -0
  189. package/src/theme/IconMenu/index.tsx +3 -5
  190. package/src/theme/LastUpdated/index.tsx +3 -2
  191. package/src/theme/Layout/index.tsx +5 -6
  192. package/src/theme/LayoutHead/index.tsx +26 -25
  193. package/src/theme/LayoutProviders/index.tsx +15 -9
  194. package/src/theme/Logo/index.tsx +21 -19
  195. package/src/theme/MDXComponents/index.tsx +70 -32
  196. package/{lib/theme/IconExternalLink/styles.module.css → src/theme/MDXComponents/styles.css} +7 -4
  197. package/src/theme/MDXPage/index.tsx +10 -12
  198. package/src/theme/Navbar/index.tsx +208 -68
  199. package/src/theme/Navbar/styles.module.css +10 -3
  200. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
  201. package/src/theme/NavbarItem/DocNavbarItem.tsx +17 -18
  202. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  203. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +39 -24
  204. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  205. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +181 -0
  206. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +16 -10
  207. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  208. package/src/theme/NavbarItem/NavbarNavLink.tsx +68 -0
  209. package/src/theme/NavbarItem/index.tsx +41 -18
  210. package/src/theme/NavbarItem/utils.ts +10 -0
  211. package/src/theme/NotFound.tsx +1 -3
  212. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  213. package/src/theme/SearchBar.tsx +2 -1
  214. package/src/theme/SearchMetadata/index.tsx +43 -0
  215. package/src/theme/Seo/index.tsx +7 -4
  216. package/src/theme/SkipToContent/index.tsx +3 -5
  217. package/src/theme/SkipToContent/styles.module.css +7 -0
  218. package/src/theme/TOC/index.tsx +13 -44
  219. package/src/theme/TOC/styles.module.css +1 -1
  220. package/src/theme/TOCCollapsible/index.tsx +58 -0
  221. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  222. package/src/theme/TOCInline/index.tsx +14 -35
  223. package/src/theme/TOCItems/index.tsx +100 -0
  224. package/src/theme/TabItem/index.tsx +5 -3
  225. package/src/theme/Tabs/index.tsx +115 -56
  226. package/src/theme/Tabs/styles.module.css +0 -13
  227. package/src/theme/Tag/index.tsx +29 -0
  228. package/src/theme/Tag/styles.module.css +70 -0
  229. package/src/theme/TagsListByLetter/index.tsx +43 -0
  230. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  231. package/src/theme/TagsListInline/index.tsx +35 -0
  232. package/src/theme/TagsListInline/styles.module.css +15 -0
  233. package/src/theme/ThemedImage/index.tsx +7 -9
  234. package/src/theme/ThemedImage/styles.module.css +2 -2
  235. package/src/theme/prism-include-languages.ts +20 -15
  236. package/src/theme-classic.d.ts +771 -0
  237. package/src/translations.ts +74 -54
  238. package/src/types.d.ts +0 -587
  239. package/src/validateThemeConfig.ts +381 -0
  240. package/babel.config.js +0 -35
  241. package/codeTranslations/README.md +0 -20
  242. package/codeTranslations/ar.json +0 -57
  243. package/codeTranslations/base.json +0 -112
  244. package/codeTranslations/bn.json +0 -56
  245. package/codeTranslations/da.json +0 -57
  246. package/codeTranslations/de.json +0 -57
  247. package/codeTranslations/es.json +0 -57
  248. package/codeTranslations/fa.json +0 -57
  249. package/codeTranslations/fil.json +0 -57
  250. package/codeTranslations/fr.json +0 -57
  251. package/codeTranslations/he.json +0 -57
  252. package/codeTranslations/hi.json +0 -57
  253. package/codeTranslations/ja.json +0 -57
  254. package/codeTranslations/ko.json +0 -57
  255. package/codeTranslations/pl.json +0 -57
  256. package/codeTranslations/pt-BR.json +0 -57
  257. package/codeTranslations/pt-PT.json +0 -57
  258. package/codeTranslations/ru.json +0 -57
  259. package/codeTranslations/tr.json +0 -57
  260. package/codeTranslations/vi.json +0 -57
  261. package/codeTranslations/zh-Hans.json +0 -57
  262. package/codeTranslations/zh-Hant.json +0 -57
  263. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  264. package/lib/__tests__/translations.test.js +0 -112
  265. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  266. package/lib/theme/AnnouncementBar/index.js +0 -72
  267. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  268. package/lib/theme/BlogListPage/index.js +0 -71
  269. package/lib/theme/BlogListPaginator/index.js +0 -63
  270. package/lib/theme/BlogPostItem/index.js +0 -161
  271. package/lib/theme/BlogPostPage/index.js +0 -69
  272. package/lib/theme/BlogPostPaginator/index.js +0 -64
  273. package/lib/theme/BlogSidebar/index.js +0 -51
  274. package/lib/theme/BlogSidebar/styles.module.css +0 -44
  275. package/lib/theme/BlogTagsListPage/index.js +0 -76
  276. package/lib/theme/BlogTagsPostsPage/index.js +0 -100
  277. package/lib/theme/CodeBlock/index.js +0 -253
  278. package/lib/theme/CodeBlock/styles.module.css +0 -68
  279. package/lib/theme/DocItem/index.js +0 -129
  280. package/lib/theme/DocPage/index.js +0 -173
  281. package/lib/theme/DocPage/styles.module.css +0 -80
  282. package/lib/theme/DocPaginator/index.js +0 -63
  283. package/lib/theme/DocSidebar/index.js +0 -309
  284. package/lib/theme/DocSidebar/styles.module.css +0 -124
  285. package/lib/theme/DocVersionBanner/index.js +0 -128
  286. package/lib/theme/EditThisPage/index.js +0 -31
  287. package/lib/theme/Footer/index.js +0 -115
  288. package/lib/theme/Footer/styles.module.css +0 -15
  289. package/lib/theme/Heading/index.js +0 -76
  290. package/lib/theme/Heading/styles.css +0 -23
  291. package/lib/theme/Heading/styles.module.css +0 -15
  292. package/lib/theme/IconArrow/index.js +0 -28
  293. package/lib/theme/IconEdit/index.js +0 -34
  294. package/lib/theme/IconExternalLink/index.js +0 -30
  295. package/lib/theme/IconLanguage/index.js +0 -29
  296. package/lib/theme/IconMenu/index.js +0 -30
  297. package/lib/theme/LastUpdated/index.js +0 -61
  298. package/lib/theme/Layout/index.js +0 -64
  299. package/lib/theme/Layout/styles.css +0 -27
  300. package/lib/theme/LayoutHead/index.js +0 -144
  301. package/lib/theme/LayoutProviders/index.js +0 -36
  302. package/lib/theme/Logo/index.js +0 -60
  303. package/lib/theme/MDXComponents/index.js +0 -65
  304. package/lib/theme/MDXPage/index.js +0 -66
  305. package/lib/theme/Navbar/index.js +0 -147
  306. package/lib/theme/Navbar/styles.module.css +0 -20
  307. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
  308. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
  309. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
  310. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  311. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  312. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  313. package/lib/theme/NavbarItem/index.js +0 -54
  314. package/lib/theme/NotFound.js +0 -57
  315. package/lib/theme/SearchBar.js +0 -15
  316. package/lib/theme/SearchMetadatas/index.js +0 -33
  317. package/lib/theme/Seo/index.js +0 -49
  318. package/lib/theme/SkipToContent/index.js +0 -71
  319. package/lib/theme/SkipToContent/styles.module.css +0 -14
  320. package/lib/theme/TOC/index.js +0 -59
  321. package/lib/theme/TOC/styles.module.css +0 -23
  322. package/lib/theme/TOCInline/index.js +0 -53
  323. package/lib/theme/TOCInline/styles.module.css +0 -12
  324. package/lib/theme/TabItem/index.js +0 -32
  325. package/lib/theme/Tabs/index.js +0 -150
  326. package/lib/theme/Tabs/styles.module.css +0 -23
  327. package/lib/theme/ThemeContext.js +0 -21
  328. package/lib/theme/ThemeProvider/index.js +0 -38
  329. package/lib/theme/ThemedImage/index.js +0 -49
  330. package/lib/theme/ThemedImage/styles.module.css +0 -18
  331. package/lib/theme/Toggle/index.js +0 -94
  332. package/lib/theme/Toggle/styles.css +0 -103
  333. package/lib/theme/UserPreferencesContext.js +0 -18
  334. package/lib/theme/UserPreferencesProvider/index.js +0 -36
  335. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  336. package/lib/theme/hooks/useDocs.js +0 -18
  337. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  338. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  339. package/lib/theme/hooks/useLocationHash.js +0 -28
  340. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  341. package/lib/theme/hooks/usePrismTheme.js +0 -36
  342. package/lib/theme/hooks/useScrollPosition.js +0 -49
  343. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  344. package/lib/theme/hooks/useTabGroupChoice.js +0 -51
  345. package/lib/theme/hooks/useTheme.js +0 -99
  346. package/lib/theme/hooks/useThemeContext.js +0 -31
  347. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  348. package/lib/theme/hooks/useWindowSize.js +0 -55
  349. package/lib/theme/prism-include-languages.js +0 -39
  350. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  351. package/lib-next/__tests__/translations.test.js +0 -128
  352. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  353. package/lib-next/index.js +0 -221
  354. package/lib-next/theme/Heading/styles.css +0 -23
  355. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  356. package/lib-next/theme/ThemeContext.js +0 -9
  357. package/lib-next/theme/ThemeProvider/index.js +0 -25
  358. package/lib-next/theme/Toggle/index.js +0 -80
  359. package/lib-next/theme/Toggle/styles.css +0 -103
  360. package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
  361. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  362. package/lib-next/theme/hooks/useDocs.js +0 -10
  363. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  364. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  365. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  366. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  367. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  368. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  369. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  370. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
  371. package/lib-next/theme/hooks/useTheme.js +0 -82
  372. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  373. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  374. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  375. package/lib-next/translations.js +0 -145
  376. package/lib-next/types.d.ts +0 -598
  377. package/lib-next/validateThemeConfig.js +0 -317
  378. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  379. package/src/__tests__/translations.test.ts +0 -116
  380. package/src/__tests__/validateThemeConfig.test.js +0 -333
  381. package/src/prism-include-languages.js +0 -11
  382. package/src/theme/Heading/styles.css +0 -23
  383. package/src/theme/SearchMetadatas/index.tsx +0 -28
  384. package/src/theme/ThemeContext.ts +0 -15
  385. package/src/theme/ThemeProvider/index.tsx +0 -24
  386. package/src/theme/Toggle/index.tsx +0 -100
  387. package/src/theme/Toggle/styles.css +0 -103
  388. package/src/theme/UserPreferencesContext.ts +0 -12
  389. package/src/theme/UserPreferencesProvider/index.tsx +0 -27
  390. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  391. package/src/theme/hooks/useDocs.ts +0 -11
  392. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  393. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  394. package/src/theme/hooks/useLocationHash.ts +0 -25
  395. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  396. package/src/theme/hooks/usePrismTheme.ts +0 -22
  397. package/src/theme/hooks/useScrollPosition.ts +0 -45
  398. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  399. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  400. package/src/theme/hooks/useTheme.ts +0 -92
  401. package/src/theme/hooks/useThemeContext.ts +0 -23
  402. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  403. package/src/theme/hooks/useWindowSize.ts +0 -51
  404. package/src/validateThemeConfig.js +0 -317
  405. package/tsconfig.json +0 -12
  406. package/update-code-translations.js +0 -240
  407. package/update-code-translations.test.js +0 -33
@@ -1,317 +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
- const {Joi, URISchema} = require('@docusaurus/utils-validation');
9
-
10
- const DEFAULT_DOCS_CONFIG = {
11
- versionPersistence: 'localStorage',
12
- };
13
- const DocsSchema = Joi.object({
14
- versionPersistence: Joi.string()
15
- .equal('localStorage', 'none')
16
- .default(DEFAULT_DOCS_CONFIG.versionPersistence),
17
- }).default(DEFAULT_DOCS_CONFIG);
18
-
19
- const DEFAULT_COLOR_MODE_CONFIG = {
20
- defaultMode: 'light',
21
- disableSwitch: false,
22
- respectPrefersColorScheme: false,
23
- switchConfig: {
24
- darkIcon: '🌜',
25
- darkIconStyle: {},
26
- lightIcon: '🌞',
27
- lightIconStyle: {},
28
- },
29
- };
30
-
31
- const DEFAULT_CONFIG = {
32
- colorMode: DEFAULT_COLOR_MODE_CONFIG,
33
- docs: DEFAULT_DOCS_CONFIG,
34
- metadatas: [],
35
- prism: {
36
- additionalLanguages: [],
37
- },
38
- navbar: {
39
- hideOnScroll: false,
40
- items: [],
41
- },
42
- hideableSidebar: false,
43
- };
44
- exports.DEFAULT_CONFIG = DEFAULT_CONFIG;
45
-
46
- const NavbarItemPosition = Joi.string().equal('left', 'right').default('left');
47
-
48
- const BaseNavbarItemSchema = Joi.object({
49
- to: Joi.string(),
50
- href: URISchema,
51
- label: Joi.string(),
52
- className: Joi.string(),
53
- prependBaseUrlToHref: Joi.bool(),
54
- })
55
- // We allow any unknown attributes on the links
56
- // (users may need additional attributes like target, aria-role, data-customAttribute...)
57
- .unknown();
58
-
59
- // TODO we should probably create a custom navbar item type "dropdown"
60
- // having this recursive structure is bad because we only support 2 levels
61
- // + parent/child don't have exactly the same props
62
- const DefaultNavbarItemSchema = BaseNavbarItemSchema.append({
63
- items: Joi.array().optional().items(BaseNavbarItemSchema),
64
- position: NavbarItemPosition,
65
- activeBasePath: Joi.string(),
66
- activeBaseRegex: Joi.string(),
67
- });
68
- // TODO the dropdown parent item can have no href/to
69
- // should check should not apply to dropdown parent item
70
- // .xor('href', 'to');
71
-
72
- const DocsVersionNavbarItemSchema = Joi.object({
73
- type: Joi.string().equal('docsVersion').required(),
74
- position: NavbarItemPosition,
75
- label: Joi.string(),
76
- to: Joi.string(),
77
- docsPluginId: Joi.string(),
78
- className: Joi.string(),
79
- });
80
-
81
- const DocsVersionDropdownNavbarItemSchema = Joi.object({
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({
92
- type: Joi.string().equal('doc').required(),
93
- position: NavbarItemPosition,
94
- docId: Joi.string().required(),
95
- label: Joi.string(),
96
- docsPluginId: Joi.string(),
97
- activeSidebarClassName: Joi.string().default('navbar__link--active'),
98
- className: Joi.string(),
99
- });
100
-
101
- const LocaleDropdownNavbarItemSchema = Joi.object({
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();
117
- // because equal(undefined) is not supported :/
118
- if (type) {
119
- typeSchema = typeSchema.equal(type);
120
- }
121
- return Joi.object({
122
- type: typeSchema,
123
- })
124
- .unknown()
125
- .required();
126
- };
127
-
128
- const NavbarItemSchema = Joi.object().when({
129
- switch: [
130
- {
131
- is: isOfType('docsVersion'),
132
- then: DocsVersionNavbarItemSchema,
133
- },
134
- {
135
- is: isOfType('docsVersionDropdown'),
136
- then: DocsVersionDropdownNavbarItemSchema,
137
- },
138
- {
139
- is: isOfType('doc'),
140
- then: DocItemSchema,
141
- },
142
- {
143
- is: isOfType('localeDropdown'),
144
- then: LocaleDropdownNavbarItemSchema,
145
- },
146
- {
147
- is: isOfType('search'),
148
- then: SearchItemSchema,
149
- },
150
- {
151
- is: isOfType(undefined),
152
- then: Joi.forbidden().messages({
153
- 'any.unknown': 'Bad navbar item type {.type}',
154
- }),
155
- },
156
- ],
157
- otherwise: DefaultNavbarItemSchema,
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,
178
- });
179
- */
180
-
181
- const ColorModeSchema = Joi.object({
182
- defaultMode: Joi.string()
183
- .equal('dark', 'light')
184
- .default(DEFAULT_COLOR_MODE_CONFIG.defaultMode),
185
- disableSwitch: Joi.bool().default(DEFAULT_COLOR_MODE_CONFIG.disableSwitch),
186
- respectPrefersColorScheme: Joi.bool().default(
187
- DEFAULT_COLOR_MODE_CONFIG.respectPrefersColorScheme,
188
- ),
189
- switchConfig: Joi.object({
190
- darkIcon: Joi.string().default(
191
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIcon,
192
- ),
193
- darkIconStyle: Joi.object().default(
194
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.darkIconStyle,
195
- ),
196
- lightIcon: Joi.string().default(
197
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIcon,
198
- ),
199
- lightIconStyle: Joi.object().default(
200
- DEFAULT_COLOR_MODE_CONFIG.switchConfig.lightIconStyle,
201
- ),
202
- }).default(DEFAULT_COLOR_MODE_CONFIG.switchConfig),
203
- }).default(DEFAULT_COLOR_MODE_CONFIG);
204
-
205
- // schema can probably be improved
206
- const HtmlMetadataSchema = Joi.object({
207
- id: Joi.string(),
208
- name: Joi.string(),
209
- property: Joi.string(),
210
- content: Joi.string(),
211
- itemprop: Joi.string(),
212
- }).unknown();
213
-
214
- const FooterLinkItemSchema = Joi.object({
215
- to: Joi.string(),
216
- href: URISchema,
217
- html: Joi.string(),
218
- label: Joi.string(),
219
- })
220
- .xor('to', 'href', 'html')
221
- .with('to', 'label')
222
- .with('href', 'label')
223
- .nand('html', 'label')
224
- // We allow any unknown attributes on the links
225
- // (users may need additional attributes like target, aria-role, data-customAttribute...)
226
- .unknown();
227
-
228
- const CustomCssSchema = Joi.alternatives()
229
- .try(Joi.array().items(Joi.string().required()), Joi.string().required())
230
- .optional();
231
-
232
- const ThemeConfigSchema = Joi.object({
233
- // TODO temporary (@alpha-58)
234
- disableDarkMode: Joi.any().forbidden(false).messages({
235
- 'any.unknown':
236
- 'disableDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.disableSwitch = true',
237
- }),
238
- // TODO temporary (@alpha-58)
239
- defaultDarkMode: Joi.any().forbidden(false).messages({
240
- 'any.unknown':
241
- 'defaultDarkMode theme config is deprecated. Please use the new colorMode attribute. You likely want: config.themeConfig.colorMode.defaultMode = "dark"',
242
- }),
243
- customCss: CustomCssSchema,
244
- colorMode: ColorModeSchema,
245
- image: Joi.string(),
246
- docs: DocsSchema,
247
- metadatas: Joi.array()
248
- .items(HtmlMetadataSchema)
249
- .default(DEFAULT_CONFIG.metadatas),
250
- announcementBar: Joi.object({
251
- id: Joi.string().default('announcement-bar'),
252
- content: Joi.string(),
253
- backgroundColor: Joi.string(),
254
- textColor: Joi.string(),
255
- isCloseable: Joi.bool().default(true),
256
- }).optional(),
257
- navbar: Joi.object({
258
- style: Joi.string().equal('dark', 'primary'),
259
- hideOnScroll: Joi.bool().default(DEFAULT_CONFIG.navbar.hideOnScroll),
260
- // TODO temporary (@alpha-58)
261
- links: Joi.any().forbidden().messages({
262
- 'any.unknown':
263
- 'themeConfig.navbar.links has been renamed as themeConfig.navbar.items',
264
- }),
265
- items: Joi.array()
266
- .items(NavbarItemSchema)
267
- .default(DEFAULT_CONFIG.navbar.items),
268
- title: Joi.string().allow('', null),
269
- logo: Joi.object({
270
- alt: Joi.string().allow(''),
271
- src: Joi.string().required(),
272
- srcDark: Joi.string(),
273
- href: Joi.string(),
274
- target: Joi.string(),
275
- }),
276
- }).default(DEFAULT_CONFIG.navbar),
277
- footer: Joi.object({
278
- style: Joi.string().equal('dark', 'light').default('light'),
279
- logo: Joi.object({
280
- alt: Joi.string().allow(''),
281
- src: Joi.string(),
282
- srcDark: Joi.string(),
283
- href: Joi.string(),
284
- }),
285
- copyright: Joi.string(),
286
- links: Joi.array()
287
- .items(
288
- Joi.object({
289
- title: Joi.string().allow(null),
290
- items: Joi.array().items(FooterLinkItemSchema).default([]),
291
- }),
292
- )
293
- .default([]),
294
- }).optional(),
295
- prism: Joi.object({
296
- theme: Joi.object({
297
- plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
298
- styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
299
- }),
300
- darkTheme: Joi.object({
301
- plain: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
302
- styles: Joi.alternatives().try(Joi.array(), Joi.object()).required(),
303
- }),
304
- defaultLanguage: Joi.string(),
305
- additionalLanguages: Joi.array()
306
- .items(Joi.string())
307
- .default(DEFAULT_CONFIG.prism.additionalLanguages),
308
- })
309
- .default(DEFAULT_CONFIG.prism)
310
- .unknown(),
311
- hideableSidebar: Joi.bool().default(DEFAULT_CONFIG.hideableSidebar),
312
- });
313
- exports.ThemeConfigSchema = ThemeConfigSchema;
314
-
315
- exports.validateThemeConfig = ({validate, themeConfig}) => {
316
- return validate(ThemeConfigSchema, themeConfig);
317
- };
package/tsconfig.json DELETED
@@ -1,12 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "lib": ["DOM"],
5
- "module": "esnext",
6
- "noEmit": true,
7
- "noImplicitAny": false,
8
- "jsx": "react",
9
- "baseUrl": "src"
10
- },
11
- "include": ["src/"]
12
- }
@@ -1,240 +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
- const chalk = require('chalk');
9
- const path = require('path');
10
- const fs = require('fs-extra');
11
- const globby = require('globby');
12
- const {mapValues, pickBy, difference, orderBy} = require('lodash');
13
-
14
- const CodeDirPaths = [
15
- path.join(__dirname, 'lib-next'),
16
- // TODO other themes should rather define their own translations in the future?
17
- path.join(__dirname, '..', 'docusaurus-theme-search-algolia', 'src', 'theme'),
18
- path.join(__dirname, '..', 'docusaurus-theme-live-codeblock', 'src', 'theme'),
19
- path.join(__dirname, '..', 'docusaurus-plugin-pwa', 'src', 'theme'),
20
- ];
21
-
22
- console.log('Will scan folders for code translations:', CodeDirPaths);
23
-
24
- function removeDescriptionSuffix(key) {
25
- if (key.replace('___DESCRIPTION')) {
26
- return key.replace('___DESCRIPTION', '');
27
- }
28
- return key;
29
- }
30
-
31
- function sortObjectKeys(obj) {
32
- let keys = Object.keys(obj);
33
- keys = orderBy(keys, [(k) => removeDescriptionSuffix(k)]);
34
- return keys.reduce((acc, key) => {
35
- acc[key] = obj[key];
36
- return acc;
37
- }, {});
38
- }
39
-
40
- function logSection(title) {
41
- console.log(``);
42
- console.log(``);
43
- console.log(`##############################`);
44
- console.log(`## ${chalk.blue(title)}`);
45
- }
46
-
47
- function logKeys(keys) {
48
- return `Keys:\n- ${keys.join('\n- ')}\``;
49
- }
50
-
51
- async function extractThemeCodeMessages() {
52
- // Unsafe import, should we create a package for the translationsExtractor ?
53
- const {
54
- globSourceCodeFilePaths,
55
- extractAllSourceCodeFileTranslations,
56
- // eslint-disable-next-line global-require
57
- } = require('@docusaurus/core/lib/server/translations/translationsExtractor');
58
-
59
- const filePaths = (
60
- await globSourceCodeFilePaths(CodeDirPaths)
61
- ).filter((filePath) => ['.js', '.jsx'].includes(path.extname(filePath)));
62
-
63
- const filesExtractedTranslations = await extractAllSourceCodeFileTranslations(
64
- filePaths,
65
- {
66
- presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
67
- },
68
- );
69
-
70
- filesExtractedTranslations.forEach((fileExtractedTranslations) => {
71
- fileExtractedTranslations.warnings.forEach((warning) => {
72
- throw new Error(`
73
- Please make sure all theme translations are static!
74
- Some warnings were found!
75
-
76
- ${warning}
77
- `);
78
- });
79
- });
80
-
81
- const translations = filesExtractedTranslations.reduce(
82
- (acc, extractedTranslations) => {
83
- return {...acc, ...extractedTranslations.translations};
84
- },
85
- {},
86
- );
87
-
88
- return translations;
89
- }
90
-
91
- async function readMessagesFile(filePath) {
92
- return JSON.parse(await fs.readFile(filePath));
93
- }
94
-
95
- async function writeMessagesFile(filePath, messages) {
96
- const sortedMessages = sortObjectKeys(messages);
97
-
98
- const content = `${JSON.stringify(sortedMessages, null, 2)}\n`; // \n makes prettier happy
99
- await fs.writeFile(filePath, content);
100
- console.log(
101
- `${path.basename(filePath)} updated (${
102
- Object.keys(sortedMessages).length
103
- } messages)`,
104
- );
105
- }
106
-
107
- async function getCodeTranslationFiles() {
108
- const codeTranslationsDir = path.join(__dirname, 'codeTranslations');
109
- const baseFile = path.join(codeTranslationsDir, 'base.json');
110
- const localesFiles = (await globby(codeTranslationsDir)).filter(
111
- (filepath) =>
112
- path.extname(filepath) === '.json' && !filepath.endsWith('base.json'),
113
- );
114
- return {baseFile, localesFiles};
115
- }
116
-
117
- const DescriptionSuffix = '___DESCRIPTION';
118
-
119
- async function updateBaseFile(baseFile) {
120
- const baseMessagesWithDescriptions = await readMessagesFile(baseFile);
121
- const baseMessages = pickBy(
122
- baseMessagesWithDescriptions,
123
- (_, key) => !key.endsWith(DescriptionSuffix),
124
- );
125
-
126
- const codeExtractedTranslations = await extractThemeCodeMessages();
127
- const codeMessages = mapValues(
128
- codeExtractedTranslations,
129
- (translation) => translation.message,
130
- );
131
-
132
- const unknownMessages = difference(
133
- Object.keys(baseMessages),
134
- Object.keys(codeMessages),
135
- );
136
-
137
- if (unknownMessages.length) {
138
- console.log(
139
- chalk.red(`Some messages exist in base.json but were not found by the code extractor!
140
- They won't be removed automatically, so do the cleanup manually if necessary!
141
- ${logKeys(unknownMessages)}`),
142
- );
143
- }
144
-
145
- const newBaseMessages = {
146
- ...baseMessages, // Ensure we don't automatically remove unknown messages
147
- ...codeMessages,
148
- };
149
-
150
- const newBaseMessagesDescriptions = Object.entries(newBaseMessages).reduce(
151
- (acc, [key]) => {
152
- return {
153
- ...acc,
154
- [`${key}${DescriptionSuffix}`]: codeExtractedTranslations[key]
155
- .description,
156
- };
157
- },
158
- {},
159
- );
160
-
161
- const newBaseMessagesWitDescription = {
162
- ...newBaseMessages,
163
- ...newBaseMessagesDescriptions,
164
- };
165
-
166
- await writeMessagesFile(baseFile, newBaseMessagesWitDescription);
167
-
168
- return newBaseMessages;
169
- }
170
-
171
- async function updateLocaleCodeTranslations(localeFile, baseFileMessages) {
172
- const localeFileMessages = await readMessagesFile(localeFile);
173
-
174
- const unknownMessages = difference(
175
- Object.keys(localeFileMessages),
176
- Object.keys(baseFileMessages),
177
- );
178
-
179
- if (unknownMessages.length) {
180
- console.log(
181
- chalk.red(`Some localized messages do not exist in base.json!
182
- You may want to delete these!
183
- ${logKeys(unknownMessages)}`),
184
- );
185
- }
186
-
187
- const newLocaleFileMessages = {
188
- ...baseFileMessages,
189
- ...localeFileMessages,
190
- };
191
-
192
- const untranslatedKeys = Object.entries(newLocaleFileMessages)
193
- .filter(([key, value]) => {
194
- return value === baseFileMessages[key];
195
- })
196
- .map(([key]) => key);
197
-
198
- if (untranslatedKeys.length) {
199
- console.warn(
200
- chalk.yellow(`Some messages do not seem to be translated!
201
- ${logKeys(untranslatedKeys)}`),
202
- );
203
- }
204
-
205
- await writeMessagesFile(localeFile, newLocaleFileMessages);
206
- }
207
-
208
- async function updateCodeTranslations() {
209
- logSection('Will update base file');
210
- const {baseFile, localesFiles} = await getCodeTranslationFiles();
211
- const baseFileMessages = await updateBaseFile(baseFile);
212
-
213
- // eslint-disable-next-line no-restricted-syntax
214
- for (const localeFile of localesFiles) {
215
- logSection(`Will update ${path.basename(localeFile)}`);
216
- // eslint-disable-next-line no-await-in-loop
217
- await updateLocaleCodeTranslations(localeFile, baseFileMessages);
218
- }
219
- }
220
-
221
- function run() {
222
- updateCodeTranslations().then(
223
- () => {
224
- console.log('');
225
- console.log(chalk.green('updateCodeTranslations end'));
226
- console.log('');
227
- },
228
- (e) => {
229
- console.log('');
230
- console.error(chalk.red(`updateCodeTranslations failure: ${e.message}`));
231
- console.log('');
232
- console.error(e.stack);
233
- console.log('');
234
- process.exit(1);
235
- },
236
- );
237
- }
238
-
239
- exports.run = run;
240
- exports.extractThemeCodeMessages = extractThemeCodeMessages;
@@ -1,33 +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
- const {extractThemeCodeMessages} = require('./update-code-translations');
9
- const path = require('path');
10
- const fs = require('fs-extra');
11
- const {mapValues, pickBy} = require('lodash');
12
-
13
- // Seems the 5s default timeout fails sometimes
14
- jest.setTimeout(15000);
15
-
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 () => {
18
- const baseMessages = pickBy(
19
- JSON.parse(
20
- await fs.readFile(
21
- path.join(__dirname, 'codeTranslations', 'base.json'),
22
- ),
23
- ),
24
- (_, key) => !key.endsWith('___DESCRIPTION'),
25
- );
26
-
27
- const codeMessages = mapValues(
28
- await extractThemeCodeMessages(),
29
- (translation) => translation.message,
30
- );
31
- expect(codeMessages).toEqual(baseMessages);
32
- });
33
- });