@docusaurus/theme-classic 2.0.0-beta.15d451942 → 2.0.0-beta.18

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 (488) hide show
  1. package/README.md +2 -2
  2. package/lib/admonitions.css +35 -0
  3. package/lib/deps.d.ts +13 -0
  4. package/lib/getSwizzleConfig.js +236 -0
  5. package/lib/index.js +63 -52
  6. package/lib/prism-include-languages.js +9 -5
  7. package/lib/theme-classic.d.ts +997 -0
  8. package/lib/translations.js +52 -36
  9. package/lib/types.d.ts +0 -589
  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 +10 -22
  13. package/lib-next/theme/AnnouncementBar/styles.module.css +26 -35
  14. package/lib-next/theme/BackToTopButton/index.js +129 -0
  15. package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
  16. package/lib-next/theme/BlogArchivePage/index.js +84 -0
  17. package/lib-next/theme/BlogLayout/index.js +37 -0
  18. package/lib-next/theme/BlogListPage/index.js +45 -35
  19. package/lib-next/theme/BlogListPaginator/index.js +13 -16
  20. package/lib-next/theme/BlogPostAuthor/index.js +52 -0
  21. package/lib-next/theme/BlogPostAuthor/styles.module.css +12 -0
  22. package/lib-next/theme/BlogPostAuthors/index.js +44 -0
  23. package/lib-next/theme/BlogPostAuthors/styles.module.css +21 -0
  24. package/lib-next/theme/BlogPostItem/index.js +112 -97
  25. package/lib-next/theme/BlogPostItem/styles.module.css +5 -1
  26. package/lib-next/theme/BlogPostPage/index.js +84 -41
  27. package/lib-next/theme/BlogPostPaginator/index.js +13 -20
  28. package/lib-next/theme/BlogSidebar/index.js +23 -16
  29. package/lib-next/theme/BlogSidebar/styles.module.css +8 -8
  30. package/lib-next/theme/BlogTagsListPage/index.js +24 -70
  31. package/lib-next/theme/BlogTagsPostsPage/index.js +57 -62
  32. package/lib-next/theme/CodeBlock/CopyButton/index.js +60 -0
  33. package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +66 -0
  34. package/lib-next/theme/CodeBlock/index.js +74 -195
  35. package/lib-next/theme/CodeBlock/styles.module.css +13 -28
  36. package/lib-next/theme/ColorModeToggle/index.js +62 -0
  37. package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
  38. package/lib-next/theme/Details/index.js +21 -0
  39. package/lib-next/theme/Details/styles.module.css +13 -0
  40. package/lib-next/theme/DocBreadcrumbs/index.js +93 -0
  41. package/{lib/theme/Heading → lib-next/theme/DocBreadcrumbs}/styles.module.css +3 -2
  42. package/lib-next/theme/DocCard/index.js +93 -0
  43. package/lib-next/theme/DocCard/styles.module.css +34 -0
  44. package/lib-next/theme/DocCardList/index.js +31 -0
  45. package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
  46. package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  47. package/lib-next/theme/DocItem/index.js +99 -86
  48. package/lib-next/theme/DocItem/styles.module.css +7 -13
  49. package/lib-next/theme/DocItemFooter/index.js +79 -0
  50. package/{lib/theme/Layout/styles.css → lib-next/theme/DocItemFooter/styles.module.css} +8 -11
  51. package/lib-next/theme/DocPage/index.js +124 -99
  52. package/lib-next/theme/DocPage/styles.module.css +14 -30
  53. package/lib-next/theme/DocPaginator/index.js +16 -25
  54. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
  55. package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
  56. package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
  57. package/{lib/theme/Footer → lib-next/theme/DocSidebar/Desktop/Content}/styles.module.css +8 -6
  58. package/lib-next/theme/DocSidebar/Desktop/index.js +34 -0
  59. package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
  60. package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
  61. package/lib-next/theme/DocSidebar/index.js +13 -333
  62. package/lib-next/theme/DocSidebarItem/index.js +265 -0
  63. package/lib-next/theme/DocSidebarItem/styles.module.css +17 -0
  64. package/lib-next/theme/DocSidebarItems/index.js +28 -0
  65. package/lib-next/theme/DocTagDocListPage/index.js +96 -0
  66. package/lib-next/theme/DocTagsListPage/index.js +40 -0
  67. package/lib-next/theme/DocVersionBadge/index.js +34 -0
  68. package/lib-next/theme/{DocVersionSuggestions → DocVersionBanner}/index.js +54 -36
  69. package/lib-next/theme/EditThisPage/index.js +6 -1
  70. package/lib-next/theme/ErrorPageContent.js +35 -0
  71. package/lib-next/theme/Footer/Copyright/index.js +18 -0
  72. package/lib-next/theme/Footer/Layout/index.js +26 -0
  73. package/lib-next/theme/Footer/LinkItem/index.js +33 -0
  74. package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
  75. package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
  76. package/lib-next/theme/Footer/Links/index.js +17 -0
  77. package/lib-next/theme/Footer/Logo/index.js +38 -0
  78. package/{src/theme/Footer → lib-next/theme/Footer/Logo}/styles.module.css +2 -1
  79. package/lib-next/theme/Footer/index.js +12 -100
  80. package/lib-next/theme/Heading/index.js +42 -33
  81. package/lib-next/theme/Heading/styles.module.css +27 -2
  82. package/lib-next/theme/IconArrow/index.js +3 -6
  83. package/lib-next/theme/IconClose/index.js +23 -0
  84. package/lib-next/theme/IconDarkMode/index.js +17 -0
  85. package/lib-next/theme/IconEdit/index.js +5 -10
  86. package/lib-next/theme/IconExternalLink/index.js +23 -0
  87. package/lib-next/theme/{LastUpdated → IconExternalLink}/styles.module.css +2 -2
  88. package/lib-next/theme/IconLanguage/index.js +5 -8
  89. package/lib-next/theme/IconLightMode/index.js +17 -0
  90. package/lib-next/theme/IconMenu/index.js +8 -9
  91. package/lib-next/theme/LastUpdated/index.js +35 -39
  92. package/lib-next/theme/Layout/index.js +19 -16
  93. package/lib-next/theme/Layout/styles.css +6 -0
  94. package/lib-next/theme/LayoutProviders/index.js +22 -10
  95. package/lib-next/theme/Logo/index.js +21 -16
  96. package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
  97. package/lib-next/theme/MDXComponents/Code.js +28 -0
  98. package/lib-next/theme/MDXComponents/Details.js +20 -0
  99. package/lib-next/theme/MDXComponents/Head.js +26 -0
  100. package/lib-next/theme/{hooks/styles.css → MDXComponents/Heading.js} +4 -3
  101. package/lib-next/theme/MDXComponents/Img.js +24 -0
  102. package/{lib/theme/LastUpdated/styles.module.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
  103. package/lib-next/theme/MDXComponents/Pre.js +18 -0
  104. package/lib-next/theme/MDXComponents/Ul.js +23 -0
  105. package/lib-next/theme/MDXComponents/Ul.module.css +11 -0
  106. package/lib-next/theme/MDXComponents/index.js +22 -42
  107. package/lib-next/theme/MDXContent/index.js +12 -0
  108. package/lib-next/theme/MDXPage/index.js +38 -39
  109. package/{lib/theme/IconEdit → lib-next/theme/MDXPage}/styles.module.css +2 -3
  110. package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
  111. package/lib-next/theme/Navbar/Content/index.js +70 -0
  112. package/lib-next/theme/Navbar/Content/styles.module.css +15 -0
  113. package/lib-next/theme/Navbar/Layout/index.js +54 -0
  114. package/{src/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +1 -7
  115. package/lib-next/theme/Navbar/Logo/index.js +17 -0
  116. package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
  117. package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
  118. package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
  119. package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
  120. package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
  121. package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
  122. package/lib-next/theme/Navbar/index.js +7 -137
  123. package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +33 -186
  124. package/lib-next/theme/NavbarItem/DocNavbarItem.js +31 -14
  125. package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +73 -0
  126. package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +38 -24
  127. package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +4 -1
  128. package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +164 -0
  129. package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +12 -13
  130. package/lib-next/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  131. package/lib-next/theme/NavbarItem/NavbarNavLink.js +66 -0
  132. package/lib-next/theme/NavbarItem/index.js +27 -15
  133. package/lib-next/theme/{UserPreferencesContext.js → NavbarItem/utils.js} +3 -3
  134. package/lib-next/theme/NotFound.js +40 -34
  135. package/lib-next/theme/PaginatorNavLink/index.js +17 -0
  136. package/lib-next/theme/SearchBar.js +1 -1
  137. package/lib-next/theme/SearchMetadata/index.js +34 -0
  138. package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +25 -45
  139. package/lib-next/theme/SkipToContent/index.js +9 -8
  140. package/lib-next/theme/SkipToContent/styles.module.css +8 -3
  141. package/lib-next/theme/TOC/index.js +12 -39
  142. package/lib-next/theme/TOC/styles.module.css +2 -2
  143. package/lib-next/theme/TOCCollapsible/index.js +52 -0
  144. package/lib-next/theme/TOCCollapsible/styles.module.css +50 -0
  145. package/lib-next/theme/TOCInline/index.js +10 -31
  146. package/lib-next/theme/TOCItems/index.js +85 -0
  147. package/lib-next/theme/TabItem/index.js +1 -4
  148. package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
  149. package/lib-next/theme/Tabs/index.js +108 -50
  150. package/lib-next/theme/Tabs/styles.module.css +0 -13
  151. package/lib-next/theme/Tag/index.js +24 -0
  152. package/lib-next/theme/Tag/styles.module.css +70 -0
  153. package/lib-next/theme/TagsListByLetter/index.js +40 -0
  154. package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
  155. package/lib-next/theme/TagsListInline/index.js +31 -0
  156. package/{lib/theme/BlogPostItem → lib-next/theme/TagsListInline}/styles.module.css +5 -4
  157. package/lib-next/theme/ThemedImage/index.js +10 -14
  158. package/lib-next/theme/ThemedImage/styles.module.css +9 -2
  159. package/lib-next/theme/prism-include-languages.js +17 -15
  160. package/package.json +32 -31
  161. package/src/admonitions.css +35 -0
  162. package/src/deps.d.ts +13 -0
  163. package/src/getSwizzleConfig.ts +244 -0
  164. package/src/index.ts +72 -72
  165. package/{lib-next/prism-include-languages.js → src/prism-include-languages.ts} +0 -0
  166. package/src/theme/Admonition/index.tsx +106 -0
  167. package/src/theme/AnnouncementBar/index.tsx +11 -20
  168. package/src/theme/AnnouncementBar/styles.module.css +26 -35
  169. package/src/theme/BackToTopButton/index.tsx +141 -0
  170. package/src/theme/BackToTopButton/styles.module.css +44 -0
  171. package/src/theme/BlogArchivePage/index.tsx +92 -0
  172. package/src/theme/BlogLayout/index.tsx +42 -0
  173. package/src/theme/BlogListPage/index.tsx +45 -35
  174. package/src/theme/BlogListPaginator/index.tsx +13 -15
  175. package/src/theme/BlogPostAuthor/index.tsx +54 -0
  176. package/src/theme/BlogPostAuthor/styles.module.css +12 -0
  177. package/src/theme/BlogPostAuthors/index.tsx +49 -0
  178. package/src/theme/BlogPostAuthors/styles.module.css +21 -0
  179. package/src/theme/BlogPostItem/index.tsx +103 -93
  180. package/src/theme/BlogPostItem/styles.module.css +5 -1
  181. package/src/theme/BlogPostPage/index.tsx +84 -42
  182. package/src/theme/BlogPostPaginator/index.tsx +13 -19
  183. package/src/theme/BlogSidebar/index.tsx +23 -16
  184. package/src/theme/BlogSidebar/styles.module.css +8 -8
  185. package/src/theme/BlogTagsListPage/index.tsx +24 -70
  186. package/src/theme/BlogTagsPostsPage/index.tsx +54 -65
  187. package/src/theme/CodeBlock/CopyButton/index.tsx +66 -0
  188. package/src/theme/CodeBlock/CopyButton/styles.module.css +66 -0
  189. package/src/theme/CodeBlock/index.tsx +77 -196
  190. package/src/theme/CodeBlock/styles.module.css +13 -28
  191. package/src/theme/ColorModeToggle/index.tsx +67 -0
  192. package/src/theme/ColorModeToggle/styles.module.css +35 -0
  193. package/src/theme/Details/index.tsx +25 -0
  194. package/src/theme/Details/styles.module.css +13 -0
  195. package/src/theme/DocBreadcrumbs/index.tsx +110 -0
  196. package/src/theme/DocBreadcrumbs/styles.module.css +11 -0
  197. package/src/theme/DocCard/index.tsx +116 -0
  198. package/src/theme/DocCard/styles.module.css +34 -0
  199. package/src/theme/DocCardList/index.tsx +38 -0
  200. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
  201. package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +18 -0
  202. package/src/theme/DocItem/index.tsx +93 -79
  203. package/src/theme/DocItem/styles.module.css +7 -13
  204. package/src/theme/DocItemFooter/index.tsx +91 -0
  205. package/src/theme/DocItemFooter/styles.module.css +18 -0
  206. package/src/theme/DocPage/index.tsx +124 -101
  207. package/src/theme/DocPage/styles.module.css +14 -30
  208. package/src/theme/DocPaginator/index.tsx +16 -24
  209. package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
  210. package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +44 -0
  211. package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
  212. package/src/theme/DocSidebar/Desktop/Content/styles.module.css +17 -0
  213. package/src/theme/DocSidebar/Desktop/index.tsx +38 -0
  214. package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
  215. package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
  216. package/src/theme/DocSidebar/index.tsx +14 -343
  217. package/src/theme/DocSidebarItem/index.tsx +282 -0
  218. package/src/theme/DocSidebarItem/styles.module.css +17 -0
  219. package/src/theme/DocSidebarItems/index.tsx +32 -0
  220. package/src/theme/DocTagDocListPage/index.tsx +97 -0
  221. package/src/theme/DocTagsListPage/index.tsx +44 -0
  222. package/src/theme/DocVersionBadge/index.tsx +35 -0
  223. package/src/theme/{DocVersionSuggestions → DocVersionBanner}/index.tsx +76 -47
  224. package/src/theme/EditThisPage/index.tsx +6 -1
  225. package/src/theme/ErrorPageContent.tsx +41 -0
  226. package/src/theme/Footer/Copyright/index.tsx +20 -0
  227. package/src/theme/Footer/Layout/index.tsx +34 -0
  228. package/src/theme/Footer/LinkItem/index.tsx +36 -0
  229. package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
  230. package/src/theme/Footer/Links/Simple/index.tsx +42 -0
  231. package/src/theme/Footer/Links/index.tsx +21 -0
  232. package/src/theme/Footer/Logo/index.tsx +41 -0
  233. package/{lib-next/theme/Footer → src/theme/Footer/Logo}/styles.module.css +2 -1
  234. package/src/theme/Footer/index.tsx +13 -113
  235. package/src/theme/Heading/index.tsx +43 -35
  236. package/src/theme/Heading/styles.module.css +27 -2
  237. package/src/theme/IconArrow/index.tsx +3 -5
  238. package/src/theme/IconClose/index.tsx +26 -0
  239. package/src/theme/IconDarkMode/index.tsx +20 -0
  240. package/src/theme/IconEdit/index.tsx +8 -9
  241. package/src/theme/IconExternalLink/index.tsx +30 -0
  242. package/src/theme/IconExternalLink/styles.module.css +10 -0
  243. package/src/theme/IconLanguage/index.tsx +6 -8
  244. package/src/theme/IconLightMode/index.tsx +20 -0
  245. package/src/theme/IconMenu/index.tsx +4 -9
  246. package/src/theme/LastUpdated/index.tsx +35 -39
  247. package/src/theme/Layout/index.tsx +19 -15
  248. package/src/theme/Layout/styles.css +6 -0
  249. package/src/theme/LayoutProviders/index.tsx +22 -10
  250. package/src/theme/Logo/index.tsx +21 -15
  251. package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
  252. package/src/theme/MDXComponents/Code.tsx +37 -0
  253. package/src/theme/MDXComponents/Details.tsx +26 -0
  254. package/src/theme/MDXComponents/Head.tsx +29 -0
  255. package/src/theme/MDXComponents/Heading.tsx +14 -0
  256. package/src/theme/{LastUpdated/styles.module.css → MDXComponents/Img.module.css} +2 -2
  257. package/src/theme/MDXComponents/Img.tsx +26 -0
  258. package/src/theme/MDXComponents/Pre.tsx +22 -0
  259. package/src/theme/MDXComponents/Ul.module.css +11 -0
  260. package/src/theme/MDXComponents/Ul.tsx +28 -0
  261. package/src/theme/MDXComponents/index.tsx +23 -42
  262. package/src/theme/MDXContent/index.tsx +15 -0
  263. package/src/theme/MDXPage/index.tsx +39 -39
  264. package/src/theme/MDXPage/styles.module.css +10 -0
  265. package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
  266. package/src/theme/Navbar/Content/index.tsx +81 -0
  267. package/src/theme/Navbar/Content/styles.module.css +15 -0
  268. package/src/theme/Navbar/Layout/index.tsx +57 -0
  269. package/{lib/theme/Navbar → src/theme/Navbar/Layout}/styles.module.css +1 -7
  270. package/src/theme/Navbar/Logo/index.tsx +19 -0
  271. package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
  272. package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
  273. package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
  274. package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
  275. package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
  276. package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
  277. package/src/theme/Navbar/index.tsx +7 -147
  278. package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -194
  279. package/src/theme/NavbarItem/DocNavbarItem.tsx +33 -15
  280. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +84 -0
  281. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +44 -28
  282. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +7 -3
  283. package/src/theme/NavbarItem/DropdownNavbarItem.tsx +190 -0
  284. package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +17 -11
  285. package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
  286. package/src/theme/NavbarItem/NavbarNavLink.tsx +64 -0
  287. package/src/theme/NavbarItem/index.tsx +41 -19
  288. package/src/theme/NavbarItem/utils.ts +10 -0
  289. package/src/theme/NotFound.tsx +40 -33
  290. package/src/theme/PaginatorNavLink/index.tsx +20 -0
  291. package/src/theme/SearchBar.tsx +2 -1
  292. package/src/theme/SearchMetadata/index.tsx +43 -0
  293. package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +25 -38
  294. package/src/theme/SkipToContent/index.tsx +9 -8
  295. package/src/theme/SkipToContent/styles.module.css +8 -3
  296. package/src/theme/TOC/index.tsx +13 -44
  297. package/src/theme/TOC/styles.module.css +2 -2
  298. package/src/theme/TOCCollapsible/index.tsx +56 -0
  299. package/src/theme/TOCCollapsible/styles.module.css +50 -0
  300. package/src/theme/TOCInline/index.tsx +14 -35
  301. package/src/theme/TOCItems/index.tsx +100 -0
  302. package/src/theme/TabItem/index.tsx +5 -3
  303. package/src/theme/Tabs/index.tsx +117 -59
  304. package/src/theme/Tabs/styles.module.css +0 -13
  305. package/src/theme/Tag/index.tsx +29 -0
  306. package/src/theme/Tag/styles.module.css +70 -0
  307. package/src/theme/TagsListByLetter/index.tsx +43 -0
  308. package/src/theme/TagsListByLetter/styles.module.css +11 -0
  309. package/src/theme/TagsListInline/index.tsx +35 -0
  310. package/src/theme/TagsListInline/styles.module.css +15 -0
  311. package/src/theme/ThemedImage/index.tsx +12 -13
  312. package/src/theme/ThemedImage/styles.module.css +9 -2
  313. package/src/theme/prism-include-languages.ts +20 -15
  314. package/src/theme-classic.d.ts +997 -0
  315. package/src/translations.ts +84 -58
  316. package/src/types.d.ts +0 -589
  317. package/src/validateThemeConfig.ts +381 -0
  318. package/babel.config.js +0 -35
  319. package/codeTranslations/README.md +0 -20
  320. package/codeTranslations/ar.json +0 -55
  321. package/codeTranslations/base.json +0 -108
  322. package/codeTranslations/da.json +0 -55
  323. package/codeTranslations/de.json +0 -55
  324. package/codeTranslations/es.json +0 -55
  325. package/codeTranslations/fa.json +0 -55
  326. package/codeTranslations/fil.json +0 -55
  327. package/codeTranslations/fr.json +0 -55
  328. package/codeTranslations/he.json +0 -55
  329. package/codeTranslations/hi.json +0 -55
  330. package/codeTranslations/ja.json +0 -55
  331. package/codeTranslations/ko.json +0 -55
  332. package/codeTranslations/pl.json +0 -55
  333. package/codeTranslations/pt-BR.json +0 -55
  334. package/codeTranslations/pt-PT.json +0 -55
  335. package/codeTranslations/ru.json +0 -55
  336. package/codeTranslations/tr.json +0 -55
  337. package/codeTranslations/vi.json +0 -55
  338. package/codeTranslations/zh-Hans.json +0 -55
  339. package/codeTranslations/zh-Hant.json +0 -55
  340. package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  341. package/lib/__tests__/translations.test.js +0 -112
  342. package/lib/__tests__/validateThemeConfig.test.js +0 -333
  343. package/lib/theme/AnnouncementBar/index.js +0 -74
  344. package/lib/theme/AnnouncementBar/styles.module.css +0 -72
  345. package/lib/theme/BlogListPage/index.js +0 -71
  346. package/lib/theme/BlogListPaginator/index.js +0 -63
  347. package/lib/theme/BlogPostItem/index.js +0 -152
  348. package/lib/theme/BlogPostPage/index.js +0 -75
  349. package/lib/theme/BlogPostPaginator/index.js +0 -64
  350. package/lib/theme/BlogSidebar/index.js +0 -43
  351. package/lib/theme/BlogSidebar/styles.module.css +0 -46
  352. package/lib/theme/BlogTagsListPage/index.js +0 -81
  353. package/lib/theme/BlogTagsPostsPage/index.js +0 -104
  354. package/lib/theme/CodeBlock/index.js +0 -253
  355. package/lib/theme/CodeBlock/styles.module.css +0 -71
  356. package/lib/theme/DocItem/index.js +0 -120
  357. package/lib/theme/DocItem/styles.module.css +0 -28
  358. package/lib/theme/DocPage/index.js +0 -141
  359. package/lib/theme/DocPage/styles.module.css +0 -98
  360. package/lib/theme/DocPaginator/index.js +0 -63
  361. package/lib/theme/DocSidebar/index.js +0 -307
  362. package/lib/theme/DocSidebar/styles.module.css +0 -138
  363. package/lib/theme/DocVersionSuggestions/index.js +0 -111
  364. package/lib/theme/EditThisPage/index.js +0 -31
  365. package/lib/theme/Footer/index.js +0 -108
  366. package/lib/theme/Heading/index.js +0 -60
  367. package/lib/theme/Heading/styles.css +0 -23
  368. package/lib/theme/IconArrow/index.js +0 -28
  369. package/lib/theme/IconEdit/index.js +0 -34
  370. package/lib/theme/IconLanguage/index.js +0 -29
  371. package/lib/theme/IconMenu/index.js +0 -31
  372. package/lib/theme/LastUpdated/index.js +0 -65
  373. package/lib/theme/Layout/index.js +0 -64
  374. package/lib/theme/LayoutHead/index.js +0 -144
  375. package/lib/theme/LayoutProviders/index.js +0 -34
  376. package/lib/theme/Logo/index.js +0 -59
  377. package/lib/theme/MDXComponents/index.js +0 -65
  378. package/lib/theme/MDXPage/index.js +0 -68
  379. package/lib/theme/Navbar/index.js +0 -147
  380. package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -195
  381. package/lib/theme/NavbarItem/DocNavbarItem.js +0 -55
  382. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -75
  383. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
  384. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
  385. package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
  386. package/lib/theme/NavbarItem/index.js +0 -54
  387. package/lib/theme/NotFound.js +0 -50
  388. package/lib/theme/SearchBar.js +0 -15
  389. package/lib/theme/SearchMetadatas/index.js +0 -33
  390. package/lib/theme/Seo/index.js +0 -49
  391. package/lib/theme/SkipToContent/index.js +0 -61
  392. package/lib/theme/SkipToContent/styles.module.css +0 -16
  393. package/lib/theme/TOC/index.js +0 -59
  394. package/lib/theme/TOC/styles.module.css +0 -23
  395. package/lib/theme/TOCInline/index.js +0 -53
  396. package/lib/theme/TOCInline/styles.module.css +0 -12
  397. package/lib/theme/TabItem/index.js +0 -32
  398. package/lib/theme/Tabs/index.js +0 -150
  399. package/lib/theme/Tabs/styles.module.css +0 -23
  400. package/lib/theme/ThemeContext.js +0 -21
  401. package/lib/theme/ThemeProvider/index.js +0 -38
  402. package/lib/theme/ThemedImage/index.js +0 -48
  403. package/lib/theme/ThemedImage/styles.module.css +0 -11
  404. package/lib/theme/Toggle/index.js +0 -106
  405. package/lib/theme/Toggle/styles.module.css +0 -114
  406. package/lib/theme/UserPreferencesContext.js +0 -18
  407. package/lib/theme/UserPreferencesProvider/index.js +0 -44
  408. package/lib/theme/hooks/styles.css +0 -10
  409. package/lib/theme/hooks/useAnnouncementBar.js +0 -63
  410. package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
  411. package/lib/theme/hooks/useDocs.js +0 -18
  412. package/lib/theme/hooks/useHideableNavbar.js +0 -92
  413. package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
  414. package/lib/theme/hooks/useLocationHash.js +0 -28
  415. package/lib/theme/hooks/useLockBodyScroll.js +0 -26
  416. package/lib/theme/hooks/usePrismTheme.js +0 -36
  417. package/lib/theme/hooks/useScrollPosition.js +0 -49
  418. package/lib/theme/hooks/useTOCHighlight.js +0 -87
  419. package/lib/theme/hooks/useTabGroupChoice.js +0 -53
  420. package/lib/theme/hooks/useTheme.js +0 -99
  421. package/lib/theme/hooks/useThemeContext.js +0 -31
  422. package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
  423. package/lib/theme/hooks/useWindowSize.js +0 -55
  424. package/lib/theme/prism-include-languages.js +0 -39
  425. package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  426. package/lib-next/__tests__/translations.test.js +0 -128
  427. package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
  428. package/lib-next/index.js +0 -198
  429. package/lib-next/theme/DocSidebar/styles.module.css +0 -138
  430. package/lib-next/theme/Heading/styles.css +0 -23
  431. package/lib-next/theme/Navbar/styles.module.css +0 -20
  432. package/lib-next/theme/SearchMetadatas/index.js +0 -20
  433. package/lib-next/theme/Seo/index.js +0 -36
  434. package/lib-next/theme/ThemeProvider/index.js +0 -25
  435. package/lib-next/theme/Toggle/index.js +0 -95
  436. package/lib-next/theme/Toggle/styles.module.css +0 -114
  437. package/lib-next/theme/UserPreferencesProvider/index.js +0 -28
  438. package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
  439. package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
  440. package/lib-next/theme/hooks/useDocs.js +0 -10
  441. package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
  442. package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
  443. package/lib-next/theme/hooks/useLocationHash.js +0 -20
  444. package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
  445. package/lib-next/theme/hooks/usePrismTheme.js +0 -20
  446. package/lib-next/theme/hooks/useScrollPosition.js +0 -38
  447. package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
  448. package/lib-next/theme/hooks/useTabGroupChoice.js +0 -41
  449. package/lib-next/theme/hooks/useTheme.js +0 -82
  450. package/lib-next/theme/hooks/useThemeContext.js +0 -22
  451. package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
  452. package/lib-next/theme/hooks/useWindowSize.js +0 -45
  453. package/lib-next/translations.js +0 -145
  454. package/lib-next/types.d.ts +0 -600
  455. package/lib-next/validateThemeConfig.js +0 -317
  456. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
  457. package/src/__tests__/translations.test.ts +0 -116
  458. package/src/__tests__/validateThemeConfig.test.js +0 -333
  459. package/src/prism-include-languages.js +0 -11
  460. package/src/theme/DocSidebar/styles.module.css +0 -138
  461. package/src/theme/Heading/styles.css +0 -23
  462. package/src/theme/SearchMetadatas/index.tsx +0 -28
  463. package/src/theme/Seo/index.tsx +0 -46
  464. package/src/theme/ThemeProvider/index.tsx +0 -24
  465. package/src/theme/Toggle/index.tsx +0 -113
  466. package/src/theme/Toggle/styles.module.css +0 -114
  467. package/src/theme/UserPreferencesContext.ts +0 -12
  468. package/src/theme/UserPreferencesProvider/index.tsx +0 -32
  469. package/src/theme/hooks/styles.css +0 -10
  470. package/src/theme/hooks/useAnnouncementBar.ts +0 -58
  471. package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
  472. package/src/theme/hooks/useDocs.ts +0 -11
  473. package/src/theme/hooks/useHideableNavbar.ts +0 -85
  474. package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
  475. package/src/theme/hooks/useLocationHash.ts +0 -25
  476. package/src/theme/hooks/useLockBodyScroll.ts +0 -20
  477. package/src/theme/hooks/usePrismTheme.ts +0 -22
  478. package/src/theme/hooks/useScrollPosition.ts +0 -45
  479. package/src/theme/hooks/useTOCHighlight.ts +0 -98
  480. package/src/theme/hooks/useTabGroupChoice.ts +0 -46
  481. package/src/theme/hooks/useTheme.ts +0 -92
  482. package/src/theme/hooks/useThemeContext.ts +0 -23
  483. package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
  484. package/src/theme/hooks/useWindowSize.ts +0 -51
  485. package/src/validateThemeConfig.js +0 -317
  486. package/tsconfig.json +0 -12
  487. package/update-code-translations.js +0 -239
  488. package/update-code-translations.test.js +0 -33
@@ -0,0 +1,44 @@
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
+ import React from 'react';
8
+ import clsx from 'clsx';
9
+ import BlogPostAuthor from '@theme/BlogPostAuthor';
10
+ import styles from './styles.module.css'; // Component responsible for the authors layout
11
+
12
+ export default function BlogPostAuthors({authors, assets}) {
13
+ const authorsCount = authors.length;
14
+
15
+ if (authorsCount === 0) {
16
+ return null;
17
+ }
18
+
19
+ const imageOnly = authors.every(({name}) => !name);
20
+ return (
21
+ <div
22
+ className={clsx(
23
+ 'margin-top--md margin-bottom--sm',
24
+ imageOnly ? styles.imageOnlyAuthorRow : 'row',
25
+ )}>
26
+ {authors.map((author, idx) => (
27
+ <div
28
+ className={clsx(
29
+ !imageOnly && 'col col--6',
30
+ imageOnly ? styles.imageOnlyAuthorCol : styles.authorCol,
31
+ )}
32
+ key={idx}>
33
+ <BlogPostAuthor
34
+ author={{
35
+ ...author,
36
+ // Handle author images using relative paths
37
+ imageURL: assets.authorsImageUrls[idx] ?? author.imageURL,
38
+ }}
39
+ />
40
+ </div>
41
+ ))}
42
+ </div>
43
+ );
44
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .authorCol {
9
+ max-width: inherit !important;
10
+ flex-grow: 1 !important;
11
+ }
12
+
13
+ .imageOnlyAuthorRow {
14
+ display: flex;
15
+ flex-flow: row wrap;
16
+ }
17
+
18
+ .imageOnlyAuthorCol {
19
+ margin-left: 0.3rem;
20
+ margin-right: 0.3rem;
21
+ }
@@ -6,13 +6,16 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import clsx from 'clsx';
9
- import {MDXProvider} from '@mdx-js/react';
10
9
  import Translate, {translate} from '@docusaurus/Translate';
11
10
  import Link from '@docusaurus/Link';
12
- import MDXComponents from '@theme/MDXComponents';
13
- import Seo from '@theme/Seo';
11
+ import {useBaseUrlUtils} from '@docusaurus/useBaseUrl';
12
+ import {usePluralForm} from '@docusaurus/theme-common';
13
+ import {blogPostContainerID} from '@docusaurus/utils-common';
14
+ import MDXContent from '@theme/MDXContent';
15
+ import EditThisPage from '@theme/EditThisPage';
14
16
  import styles from './styles.module.css';
15
- import {usePluralForm} from '@docusaurus/theme-common'; // Very simple pluralization: probably good enough for now
17
+ import TagsListInline from '@theme/TagsListInline';
18
+ import BlogPostAuthors from '@theme/BlogPostAuthors'; // Very simple pluralization: probably good enough for now
16
19
 
17
20
  function useReadingTimePlural() {
18
21
  const {selectMessage} = usePluralForm();
@@ -35,117 +38,129 @@ function useReadingTimePlural() {
35
38
  };
36
39
  }
37
40
 
38
- function BlogPostItem(props) {
41
+ export default function BlogPostItem(props) {
39
42
  const readingTimePlural = useReadingTimePlural();
43
+ const {withBaseUrl} = useBaseUrlUtils();
40
44
  const {
41
45
  children,
42
46
  frontMatter,
47
+ assets,
43
48
  metadata,
44
49
  truncated,
45
50
  isBlogPostPage = false,
46
51
  } = props;
47
- const {date, formattedDate, permalink, tags, readingTime} = metadata;
48
- const {author, title, image, keywords} = frontMatter;
49
- const authorURL = frontMatter.author_url || frontMatter.authorURL;
50
- const authorTitle = frontMatter.author_title || frontMatter.authorTitle;
51
- const authorImageURL =
52
- frontMatter.author_image_url || frontMatter.authorImageURL;
53
-
54
- const renderPostHeader = () => {
55
- const TitleHeading = isBlogPostPage ? 'h1' : 'h2';
56
- return (
52
+ const {
53
+ date,
54
+ formattedDate,
55
+ permalink,
56
+ tags,
57
+ readingTime,
58
+ title,
59
+ editUrl,
60
+ authors,
61
+ } = metadata;
62
+ const image = assets.image ?? frontMatter.image;
63
+ const truncatedPost = !isBlogPostPage && truncated;
64
+ const tagsExists = tags.length > 0;
65
+ const TitleHeading = isBlogPostPage ? 'h1' : 'h2';
66
+ return (
67
+ <article
68
+ className={!isBlogPostPage ? 'margin-bottom--xl' : undefined}
69
+ itemProp="blogPost"
70
+ itemScope
71
+ itemType="http://schema.org/BlogPosting">
57
72
  <header>
58
- <TitleHeading
59
- className={clsx('margin-bottom--sm', styles.blogPostTitle)}>
60
- {isBlogPostPage ? title : <Link to={permalink}>{title}</Link>}
73
+ <TitleHeading className={styles.blogPostTitle} itemProp="headline">
74
+ {isBlogPostPage ? (
75
+ title
76
+ ) : (
77
+ <Link itemProp="url" to={permalink}>
78
+ {title}
79
+ </Link>
80
+ )}
61
81
  </TitleHeading>
62
- <div className="margin-vert--md">
63
- <time dateTime={date} className={styles.blogPostDate}>
82
+ <div className={clsx(styles.blogPostData, 'margin-vert--md')}>
83
+ <time dateTime={date} itemProp="datePublished">
64
84
  {formattedDate}
65
- {readingTime && (
66
- <>
67
- {' · '}
68
- {readingTimePlural(readingTime)}
69
- </>
70
- )}
71
85
  </time>
72
- </div>
73
- <div className="avatar margin-vert--md">
74
- {authorImageURL && (
75
- <Link className="avatar__photo-link avatar__photo" href={authorURL}>
76
- <img src={authorImageURL} alt={author} />
77
- </Link>
86
+
87
+ {typeof readingTime !== 'undefined' && (
88
+ <>
89
+ {' · '}
90
+ {readingTimePlural(readingTime)}
91
+ </>
78
92
  )}
79
- <div className="avatar__intro">
80
- {author && (
81
- <>
82
- <h4 className="avatar__name">
83
- <Link href={authorURL}>{author}</Link>
84
- </h4>
85
- <small className="avatar__subtitle">{authorTitle}</small>
86
- </>
87
- )}
88
- </div>
89
93
  </div>
94
+ <BlogPostAuthors authors={authors} assets={assets} />
90
95
  </header>
91
- );
92
- };
93
96
 
94
- return (
95
- <>
96
- <Seo
97
- {...{
98
- keywords,
99
- image,
100
- }}
101
- />
97
+ {image && (
98
+ <meta
99
+ itemProp="image"
100
+ content={withBaseUrl(image, {
101
+ absolute: true,
102
+ })}
103
+ />
104
+ )}
102
105
 
103
- <article className={!isBlogPostPage ? 'margin-bottom--xl' : undefined}>
104
- {renderPostHeader()}
105
- <div className="markdown">
106
- <MDXProvider components={MDXComponents}>{children}</MDXProvider>
107
- </div>
108
- {(tags.length > 0 || truncated) && (
109
- <footer className="row margin-vert--lg">
110
- {tags.length > 0 && (
111
- <div className="col">
112
- <strong>
106
+ <div // This ID is used for the feed generation to locate the main content
107
+ id={isBlogPostPage ? blogPostContainerID : undefined}
108
+ className="markdown"
109
+ itemProp="articleBody">
110
+ <MDXContent>{children}</MDXContent>
111
+ </div>
112
+
113
+ {(tagsExists || truncated) && (
114
+ <footer
115
+ className={clsx(
116
+ 'row docusaurus-mt-lg',
117
+ isBlogPostPage && styles.blogPostDetailsFull,
118
+ )}>
119
+ {tagsExists && (
120
+ <div
121
+ className={clsx('col', {
122
+ 'col--9': truncatedPost,
123
+ })}>
124
+ <TagsListInline tags={tags} />
125
+ </div>
126
+ )}
127
+
128
+ {isBlogPostPage && editUrl && (
129
+ <div className="col margin-top--sm">
130
+ <EditThisPage editUrl={editUrl} />
131
+ </div>
132
+ )}
133
+
134
+ {truncatedPost && (
135
+ <div
136
+ className={clsx('col text--right', {
137
+ 'col--3': tagsExists,
138
+ })}>
139
+ <Link
140
+ to={metadata.permalink}
141
+ aria-label={translate(
142
+ {
143
+ message: 'Read more about {title}',
144
+ id: 'theme.blog.post.readMoreLabel',
145
+ description:
146
+ 'The ARIA label for the link to full blog posts from excerpts',
147
+ },
148
+ {
149
+ title,
150
+ },
151
+ )}>
152
+ <b>
113
153
  <Translate
114
- id="theme.tags.tagsListLabel"
115
- description="The label alongside a tag list">
116
- Tags:
154
+ id="theme.blog.post.readMore"
155
+ description="The label used in blog post item excerpts to link to full blog posts">
156
+ Read More
117
157
  </Translate>
118
- </strong>
119
- {tags.map(({label, permalink: tagPermalink}) => (
120
- <Link
121
- key={tagPermalink}
122
- className="margin-horiz--sm"
123
- to={tagPermalink}>
124
- {label}
125
- </Link>
126
- ))}
127
- </div>
128
- )}
129
- {truncated && (
130
- <div className="col text--right">
131
- <Link
132
- to={metadata.permalink}
133
- aria-label={`Read more about ${title}`}>
134
- <strong>
135
- <Translate
136
- id="theme.blog.post.readMore"
137
- description="The label used in blog post item excerpts to link to full blog posts">
138
- Read More
139
- </Translate>
140
- </strong>
141
- </Link>
142
- </div>
143
- )}
144
- </footer>
145
- )}
146
- </article>
147
- </>
158
+ </b>
159
+ </Link>
160
+ </div>
161
+ )}
162
+ </footer>
163
+ )}
164
+ </article>
148
165
  );
149
166
  }
150
-
151
- export default BlogPostItem;
@@ -9,6 +9,10 @@
9
9
  font-size: 3rem;
10
10
  }
11
11
 
12
- .blogPostDate {
12
+ .blogPostData {
13
13
  font-size: 0.9rem;
14
14
  }
15
+
16
+ .blogPostDetailsFull {
17
+ flex-direction: column;
18
+ }
@@ -5,55 +5,98 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React from 'react';
8
- import Layout from '@theme/Layout';
8
+ import BlogLayout from '@theme/BlogLayout';
9
9
  import BlogPostItem from '@theme/BlogPostItem';
10
10
  import BlogPostPaginator from '@theme/BlogPostPaginator';
11
- import BlogSidebar from '@theme/BlogSidebar';
11
+ import {
12
+ PageMetadata,
13
+ HtmlClassNameProvider,
14
+ ThemeClassNames,
15
+ } from '@docusaurus/theme-common';
12
16
  import TOC from '@theme/TOC';
13
- import EditThisPage from '@theme/EditThisPage';
14
- import {ThemeClassNames} from '@docusaurus/theme-common';
17
+ import clsx from 'clsx';
15
18
 
16
- function BlogPostPage(props) {
17
- const {content: BlogPostContents, sidebar} = props;
18
- const {frontMatter, metadata} = BlogPostContents;
19
- const {title, description, nextItem, prevItem, editUrl} = metadata;
20
- const {hide_table_of_contents: hideTableOfContents} = frontMatter;
19
+ function BlogPostPageMetadata(props) {
20
+ const {content: BlogPostContents} = props;
21
+ const {assets, metadata} = BlogPostContents;
22
+ const {title, description, date, tags, authors, frontMatter} = metadata;
23
+ const {keywords} = frontMatter;
24
+ const image = assets.image ?? frontMatter.image;
21
25
  return (
22
- <Layout
26
+ <PageMetadata
23
27
  title={title}
24
28
  description={description}
25
- wrapperClassName={ThemeClassNames.wrapper.blogPages}
26
- pageClassName={ThemeClassNames.page.blogPostPage}>
27
- {BlogPostContents && (
28
- <div className="container margin-vert--lg">
29
- <div className="row">
30
- <div className="col col--3">
31
- <BlogSidebar sidebar={sidebar} />
32
- </div>
33
- <main className="col col--7">
34
- <BlogPostItem
35
- frontMatter={frontMatter}
36
- metadata={metadata}
37
- isBlogPostPage>
38
- <BlogPostContents />
39
- </BlogPostItem>
40
- <div>{editUrl && <EditThisPage editUrl={editUrl} />}</div>
41
- {(nextItem || prevItem) && (
42
- <div className="margin-vert--xl">
43
- <BlogPostPaginator nextItem={nextItem} prevItem={prevItem} />
44
- </div>
45
- )}
46
- </main>
47
- {!hideTableOfContents && BlogPostContents.toc && (
48
- <div className="col col--2">
49
- <TOC toc={BlogPostContents.toc} />
50
- </div>
51
- )}
52
- </div>
53
- </div>
29
+ keywords={keywords}
30
+ image={image}>
31
+ <meta property="og:type" content="article" />
32
+ <meta property="article:published_time" content={date} />
33
+ {/* TODO double check those article meta array syntaxes, see https://ogp.me/#array */}
34
+ {authors.some((author) => author.url) && (
35
+ <meta
36
+ property="article:author"
37
+ content={authors
38
+ .map((author) => author.url)
39
+ .filter(Boolean)
40
+ .join(',')}
41
+ />
42
+ )}
43
+ {tags.length > 0 && (
44
+ <meta
45
+ property="article:tag"
46
+ content={tags.map((tag) => tag.label).join(',')}
47
+ />
48
+ )}
49
+ </PageMetadata>
50
+ );
51
+ }
52
+
53
+ function BlogPostPageContent(props) {
54
+ const {content: BlogPostContents, sidebar} = props;
55
+ const {assets, metadata} = BlogPostContents;
56
+ const {nextItem, prevItem, frontMatter} = metadata;
57
+ const {
58
+ hide_table_of_contents: hideTableOfContents,
59
+ toc_min_heading_level: tocMinHeadingLevel,
60
+ toc_max_heading_level: tocMaxHeadingLevel,
61
+ } = frontMatter;
62
+ return (
63
+ <BlogLayout
64
+ sidebar={sidebar}
65
+ toc={
66
+ !hideTableOfContents &&
67
+ BlogPostContents.toc &&
68
+ BlogPostContents.toc.length > 0 ? (
69
+ <TOC
70
+ toc={BlogPostContents.toc}
71
+ minHeadingLevel={tocMinHeadingLevel}
72
+ maxHeadingLevel={tocMaxHeadingLevel}
73
+ />
74
+ ) : undefined
75
+ }>
76
+ <BlogPostItem
77
+ frontMatter={frontMatter}
78
+ assets={assets}
79
+ metadata={metadata}
80
+ isBlogPostPage>
81
+ <BlogPostContents />
82
+ </BlogPostItem>
83
+
84
+ {(nextItem || prevItem) && (
85
+ <BlogPostPaginator nextItem={nextItem} prevItem={prevItem} />
54
86
  )}
55
- </Layout>
87
+ </BlogLayout>
56
88
  );
57
89
  }
58
90
 
59
- export default BlogPostPage;
91
+ export default function BlogPostPage(props) {
92
+ return (
93
+ <HtmlClassNameProvider
94
+ className={clsx(
95
+ ThemeClassNames.wrapper.blogPages,
96
+ ThemeClassNames.page.blogPostPage,
97
+ )}>
98
+ <BlogPostPageMetadata {...props} />
99
+ <BlogPostPageContent {...props} />
100
+ </HtmlClassNameProvider>
101
+ );
102
+ }
@@ -6,13 +6,12 @@
6
6
  */
7
7
  import React from 'react';
8
8
  import Translate, {translate} from '@docusaurus/Translate';
9
- import Link from '@docusaurus/Link';
10
-
11
- function BlogPostPaginator(props) {
9
+ import PaginatorNavLink from '@theme/PaginatorNavLink';
10
+ export default function BlogPostPaginator(props) {
12
11
  const {nextItem, prevItem} = props;
13
12
  return (
14
13
  <nav
15
- className="pagination-nav"
14
+ className="pagination-nav docusaurus-mt-lg"
16
15
  aria-label={translate({
17
16
  id: 'theme.blog.post.paginator.navAriaLabel',
18
17
  message: 'Blog post page navigation',
@@ -20,38 +19,32 @@ function BlogPostPaginator(props) {
20
19
  })}>
21
20
  <div className="pagination-nav__item">
22
21
  {prevItem && (
23
- <Link className="pagination-nav__link" to={prevItem.permalink}>
24
- <div className="pagination-nav__sublabel">
22
+ <PaginatorNavLink
23
+ {...prevItem}
24
+ subLabel={
25
25
  <Translate
26
26
  id="theme.blog.post.paginator.newerPost"
27
27
  description="The blog post button label to navigate to the newer/previous post">
28
28
  Newer Post
29
29
  </Translate>
30
- </div>
31
- <div className="pagination-nav__label">
32
- &laquo; {prevItem.title}
33
- </div>
34
- </Link>
30
+ }
31
+ />
35
32
  )}
36
33
  </div>
37
34
  <div className="pagination-nav__item pagination-nav__item--next">
38
35
  {nextItem && (
39
- <Link className="pagination-nav__link" to={nextItem.permalink}>
40
- <div className="pagination-nav__sublabel">
36
+ <PaginatorNavLink
37
+ {...nextItem}
38
+ subLabel={
41
39
  <Translate
42
40
  id="theme.blog.post.paginator.olderPost"
43
41
  description="The blog post button label to navigate to the older/next post">
44
42
  Older Post
45
43
  </Translate>
46
- </div>
47
- <div className="pagination-nav__label">
48
- {nextItem.title} &raquo;
49
- </div>
50
- </Link>
44
+ }
45
+ />
51
46
  )}
52
47
  </div>
53
48
  </nav>
54
49
  );
55
50
  }
56
-
57
- export default BlogPostPaginator;
@@ -8,29 +8,36 @@ import React from 'react';
8
8
  import clsx from 'clsx';
9
9
  import Link from '@docusaurus/Link';
10
10
  import styles from './styles.module.css';
11
+ import {translate} from '@docusaurus/Translate';
11
12
  export default function BlogSidebar({sidebar}) {
12
13
  if (sidebar.items.length === 0) {
13
14
  return null;
14
15
  }
15
16
 
16
17
  return (
17
- <div className={clsx(styles.sidebar, 'thin-scrollbar')}>
18
- <h3 className={styles.sidebarItemTitle}>{sidebar.title}</h3>
18
+ <nav
19
+ className={clsx(styles.sidebar, 'thin-scrollbar')}
20
+ aria-label={translate({
21
+ id: 'theme.blog.sidebar.navAriaLabel',
22
+ message: 'Blog recent posts navigation',
23
+ description: 'The ARIA label for recent posts in the blog sidebar',
24
+ })}>
25
+ <div className={clsx(styles.sidebarItemTitle, 'margin-bottom--md')}>
26
+ {sidebar.title}
27
+ </div>
19
28
  <ul className={styles.sidebarItemList}>
20
- {sidebar.items.map((item) => {
21
- return (
22
- <li key={item.permalink} className={styles.sidebarItem}>
23
- <Link
24
- isNavLink
25
- to={item.permalink}
26
- className={styles.sidebarItemLink}
27
- activeClassName={styles.sidebarItemLinkActive}>
28
- {item.title}
29
- </Link>
30
- </li>
31
- );
32
- })}
29
+ {sidebar.items.map((item) => (
30
+ <li key={item.permalink} className={styles.sidebarItem}>
31
+ <Link
32
+ isNavLink
33
+ to={item.permalink}
34
+ className={styles.sidebarItemLink}
35
+ activeClassName={styles.sidebarItemLinkActive}>
36
+ {item.title}
37
+ </Link>
38
+ </li>
39
+ ))}
33
40
  </ul>
34
- </div>
41
+ </nav>
35
42
  );
36
43
  }
@@ -6,7 +6,6 @@
6
6
  */
7
7
 
8
8
  .sidebar {
9
- display: inherit;
10
9
  max-height: calc(100vh - (var(--ifm-navbar-height) + 2rem));
11
10
  overflow-y: auto;
12
11
  position: sticky;
@@ -14,32 +13,33 @@
14
13
  }
15
14
 
16
15
  .sidebarItemTitle {
17
- margin-bottom: 0.5rem;
16
+ font-size: var(--ifm-h3-font-size);
17
+ font-weight: var(--ifm-font-weight-bold);
18
18
  }
19
19
 
20
20
  .sidebarItemList {
21
- overflow-y: auto;
21
+ list-style: none;
22
22
  font-size: 0.9rem;
23
23
  padding-left: 0;
24
24
  }
25
25
 
26
26
  .sidebarItem {
27
- list-style-type: none;
28
- margin: 0.8rem 0;
27
+ margin-top: 0.7rem;
29
28
  }
30
29
 
31
30
  .sidebarItemLink {
32
31
  color: var(--ifm-font-color-base);
33
32
  }
33
+
34
34
  .sidebarItemLink:hover {
35
- color: var(--ifm-color-primary);
36
35
  text-decoration: none;
37
36
  }
37
+
38
38
  .sidebarItemLinkActive {
39
- color: var(--ifm-color-primary);
39
+ color: var(--ifm-color-primary) !important;
40
40
  }
41
41
 
42
- @media only screen and (max-width: 996px) {
42
+ @media (max-width: 996px) {
43
43
  .sidebar {
44
44
  display: none;
45
45
  }