@docusaurus/theme-classic 3.4.0 → 3.5.0

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 (328) hide show
  1. package/lib/getSwizzleConfig.js +32 -1
  2. package/lib/index.d.ts +0 -1
  3. package/lib/index.js +1 -1
  4. package/lib/inlineScripts.js +3 -3
  5. package/lib/options.d.ts +0 -1
  6. package/lib/options.js +15 -3
  7. package/lib/theme/Admonition/Icon/Danger.d.ts +0 -2
  8. package/lib/theme/Admonition/Icon/Info.d.ts +0 -2
  9. package/lib/theme/Admonition/Icon/Note.d.ts +0 -2
  10. package/lib/theme/Admonition/Icon/Tip.d.ts +0 -2
  11. package/lib/theme/Admonition/Icon/Warning.d.ts +0 -2
  12. package/lib/theme/Admonition/Layout/index.d.ts +0 -2
  13. package/lib/theme/Admonition/Type/Caution.d.ts +0 -2
  14. package/lib/theme/Admonition/Type/Danger.d.ts +0 -2
  15. package/lib/theme/Admonition/Type/Info.d.ts +0 -2
  16. package/lib/theme/Admonition/Type/Note.d.ts +0 -2
  17. package/lib/theme/Admonition/Type/Tip.d.ts +0 -2
  18. package/lib/theme/Admonition/Type/Warning.d.ts +0 -2
  19. package/lib/theme/Admonition/Types.d.ts +0 -1
  20. package/lib/theme/Admonition/index.d.ts +0 -2
  21. package/lib/theme/AnnouncementBar/CloseButton/index.d.ts +0 -2
  22. package/lib/theme/AnnouncementBar/Content/index.d.ts +0 -2
  23. package/lib/theme/AnnouncementBar/index.d.ts +0 -1
  24. package/lib/theme/BackToTopButton/index.d.ts +0 -1
  25. package/lib/theme/Blog/Components/Author/Socials/index.d.ts +10 -0
  26. package/lib/theme/Blog/Components/Author/Socials/index.js +49 -0
  27. package/lib/theme/Blog/Components/Author/Socials/styles.module.css +39 -0
  28. package/lib/theme/Blog/Components/Author/index.d.ts +8 -0
  29. package/lib/theme/Blog/Components/Author/index.js +86 -0
  30. package/lib/theme/Blog/Components/Author/styles.module.css +74 -0
  31. package/lib/theme/Blog/Pages/BlogAuthorsListPage/index.d.ts +9 -0
  32. package/lib/theme/Blog/Pages/BlogAuthorsListPage/index.js +54 -0
  33. package/lib/theme/Blog/Pages/BlogAuthorsListPage/styles.module.css +11 -0
  34. package/lib/theme/Blog/Pages/BlogAuthorsPostsPage/index.d.ts +8 -0
  35. package/lib/theme/Blog/Pages/BlogAuthorsPostsPage/index.js +67 -0
  36. package/lib/theme/BlogArchivePage/index.d.ts +0 -2
  37. package/lib/theme/BlogLayout/index.d.ts +0 -2
  38. package/lib/theme/BlogListPage/StructuredData/index.d.ts +0 -2
  39. package/lib/theme/BlogListPage/StructuredData/index.js +1 -1
  40. package/lib/theme/BlogListPage/index.d.ts +0 -2
  41. package/lib/theme/BlogListPaginator/index.d.ts +0 -2
  42. package/lib/theme/BlogPostItem/Container/index.d.ts +0 -2
  43. package/lib/theme/BlogPostItem/Content/index.d.ts +0 -2
  44. package/lib/theme/BlogPostItem/Content/index.js +1 -1
  45. package/lib/theme/BlogPostItem/Footer/ReadMoreLink/index.d.ts +0 -2
  46. package/lib/theme/BlogPostItem/Footer/index.d.ts +0 -1
  47. package/lib/theme/BlogPostItem/Footer/index.js +1 -1
  48. package/lib/theme/BlogPostItem/Header/Authors/index.d.ts +0 -2
  49. package/lib/theme/BlogPostItem/Header/Authors/index.js +5 -4
  50. package/lib/theme/BlogPostItem/Header/Authors/styles.module.css +0 -1
  51. package/lib/theme/BlogPostItem/Header/Info/index.d.ts +0 -2
  52. package/lib/theme/BlogPostItem/Header/Info/index.js +2 -4
  53. package/lib/theme/BlogPostItem/Header/Title/index.d.ts +0 -2
  54. package/lib/theme/BlogPostItem/Header/Title/index.js +1 -1
  55. package/lib/theme/BlogPostItem/Header/index.d.ts +0 -1
  56. package/lib/theme/BlogPostItem/index.d.ts +0 -2
  57. package/lib/theme/BlogPostItem/index.js +1 -1
  58. package/lib/theme/BlogPostItems/index.d.ts +0 -2
  59. package/lib/theme/BlogPostItems/index.js +1 -1
  60. package/lib/theme/BlogPostPage/Metadata/index.d.ts +0 -1
  61. package/lib/theme/BlogPostPage/Metadata/index.js +1 -1
  62. package/lib/theme/BlogPostPage/StructuredData/index.d.ts +0 -1
  63. package/lib/theme/BlogPostPage/StructuredData/index.js +1 -1
  64. package/lib/theme/BlogPostPage/index.d.ts +0 -2
  65. package/lib/theme/BlogPostPage/index.js +7 -4
  66. package/lib/theme/BlogPostPaginator/index.d.ts +0 -2
  67. package/lib/theme/BlogSidebar/Content/index.d.ts +11 -0
  68. package/lib/theme/BlogSidebar/Content/index.js +41 -0
  69. package/lib/theme/BlogSidebar/Desktop/index.d.ts +4 -3
  70. package/lib/theme/BlogSidebar/Desktop/index.js +24 -17
  71. package/lib/theme/BlogSidebar/Desktop/styles.module.css +5 -0
  72. package/lib/theme/BlogSidebar/Mobile/index.d.ts +4 -3
  73. package/lib/theme/BlogSidebar/Mobile/index.js +25 -17
  74. package/lib/theme/BlogSidebar/Mobile/styles.module.css +10 -0
  75. package/lib/theme/BlogSidebar/index.d.ts +0 -2
  76. package/lib/theme/BlogTagsListPage/index.d.ts +0 -2
  77. package/lib/theme/BlogTagsPostsPage/index.d.ts +0 -2
  78. package/lib/theme/BlogTagsPostsPage/index.js +3 -31
  79. package/lib/theme/CodeBlock/Content/Element.d.ts +0 -2
  80. package/lib/theme/CodeBlock/Content/String.d.ts +0 -2
  81. package/lib/theme/CodeBlock/CopyButton/index.d.ts +0 -2
  82. package/lib/theme/CodeBlock/Line/index.d.ts +0 -2
  83. package/lib/theme/CodeBlock/WordWrapButton/index.d.ts +0 -2
  84. package/lib/theme/CodeBlock/index.d.ts +0 -2
  85. package/lib/theme/CodeInline/index.d.ts +0 -2
  86. package/lib/theme/ColorModeToggle/index.d.ts +0 -1
  87. package/lib/theme/ContentVisibility/Draft/index.d.ts +8 -0
  88. package/lib/theme/ContentVisibility/Draft/index.js +24 -0
  89. package/lib/theme/{Unlisted → ContentVisibility/Unlisted}/index.d.ts +1 -3
  90. package/lib/theme/ContentVisibility/index.d.ts +8 -0
  91. package/lib/theme/ContentVisibility/index.js +21 -0
  92. package/lib/theme/Details/index.d.ts +0 -2
  93. package/lib/theme/DocBreadcrumbs/Items/Home/index.d.ts +0 -1
  94. package/lib/theme/DocBreadcrumbs/index.d.ts +0 -1
  95. package/lib/theme/DocBreadcrumbs/index.js +2 -4
  96. package/lib/theme/DocCard/index.d.ts +0 -2
  97. package/lib/theme/DocCard/index.js +2 -2
  98. package/lib/theme/DocCardList/index.d.ts +0 -2
  99. package/lib/theme/DocCardList/index.js +1 -1
  100. package/lib/theme/DocCategoryGeneratedIndexPage/index.d.ts +0 -2
  101. package/lib/theme/DocCategoryGeneratedIndexPage/index.js +2 -4
  102. package/lib/theme/DocItem/Content/index.d.ts +0 -2
  103. package/lib/theme/DocItem/Content/index.js +1 -1
  104. package/lib/theme/DocItem/Footer/index.d.ts +0 -1
  105. package/lib/theme/DocItem/Footer/index.js +1 -1
  106. package/lib/theme/DocItem/Layout/index.d.ts +0 -2
  107. package/lib/theme/DocItem/Layout/index.js +4 -6
  108. package/lib/theme/DocItem/Metadata/index.d.ts +0 -1
  109. package/lib/theme/DocItem/Metadata/index.js +1 -1
  110. package/lib/theme/DocItem/Paginator/index.d.ts +0 -1
  111. package/lib/theme/DocItem/Paginator/index.js +1 -1
  112. package/lib/theme/DocItem/TOC/Desktop/index.d.ts +0 -1
  113. package/lib/theme/DocItem/TOC/Desktop/index.js +1 -1
  114. package/lib/theme/DocItem/TOC/Mobile/index.d.ts +0 -1
  115. package/lib/theme/DocItem/TOC/Mobile/index.js +1 -1
  116. package/lib/theme/DocItem/index.d.ts +0 -2
  117. package/lib/theme/DocItem/index.js +1 -1
  118. package/lib/theme/DocPaginator/index.d.ts +0 -2
  119. package/lib/theme/DocRoot/Layout/Main/index.d.ts +0 -2
  120. package/lib/theme/DocRoot/Layout/Main/index.js +1 -1
  121. package/lib/theme/DocRoot/Layout/Sidebar/ExpandButton/index.d.ts +0 -2
  122. package/lib/theme/DocRoot/Layout/Sidebar/index.d.ts +0 -2
  123. package/lib/theme/DocRoot/Layout/Sidebar/index.js +1 -1
  124. package/lib/theme/DocRoot/Layout/index.d.ts +0 -2
  125. package/lib/theme/DocRoot/Layout/index.js +1 -1
  126. package/lib/theme/DocRoot/index.d.ts +0 -2
  127. package/lib/theme/DocRoot/index.js +1 -1
  128. package/lib/theme/DocSidebar/Desktop/CollapseButton/index.d.ts +0 -2
  129. package/lib/theme/DocSidebar/Desktop/Content/index.d.ts +0 -2
  130. package/lib/theme/DocSidebar/Desktop/index.d.ts +0 -1
  131. package/lib/theme/DocSidebar/Mobile/index.d.ts +0 -1
  132. package/lib/theme/DocSidebar/index.d.ts +0 -2
  133. package/lib/theme/DocSidebarItem/Category/index.d.ts +0 -2
  134. package/lib/theme/DocSidebarItem/Category/index.js +2 -2
  135. package/lib/theme/DocSidebarItem/Html/index.d.ts +0 -2
  136. package/lib/theme/DocSidebarItem/Link/index.d.ts +0 -2
  137. package/lib/theme/DocSidebarItem/Link/index.js +1 -1
  138. package/lib/theme/DocSidebarItem/index.d.ts +0 -2
  139. package/lib/theme/DocSidebarItems/index.d.ts +0 -1
  140. package/lib/theme/DocSidebarItems/index.js +1 -1
  141. package/lib/theme/DocTagDocListPage/index.d.ts +0 -2
  142. package/lib/theme/DocTagDocListPage/index.js +1 -1
  143. package/lib/theme/DocTagsListPage/index.d.ts +0 -2
  144. package/lib/theme/DocVersionBadge/index.d.ts +0 -2
  145. package/lib/theme/DocVersionBadge/index.js +1 -1
  146. package/lib/theme/DocVersionBanner/index.d.ts +0 -2
  147. package/lib/theme/DocVersionBanner/index.js +1 -1
  148. package/lib/theme/DocVersionRoot/index.d.ts +0 -2
  149. package/lib/theme/DocVersionRoot/index.js +3 -3
  150. package/lib/theme/DocsRoot/index.d.ts +0 -2
  151. package/lib/theme/EditMetaRow/index.d.ts +0 -2
  152. package/lib/theme/EditThisPage/index.d.ts +0 -2
  153. package/lib/theme/ErrorPageContent.d.ts +0 -2
  154. package/lib/theme/Footer/Copyright/index.d.ts +0 -2
  155. package/lib/theme/Footer/Layout/index.d.ts +0 -2
  156. package/lib/theme/Footer/LinkItem/index.d.ts +0 -2
  157. package/lib/theme/Footer/Links/MultiColumn/index.d.ts +0 -2
  158. package/lib/theme/Footer/Links/Simple/index.d.ts +0 -2
  159. package/lib/theme/Footer/Links/index.d.ts +0 -2
  160. package/lib/theme/Footer/Logo/index.d.ts +0 -2
  161. package/lib/theme/Heading/index.d.ts +0 -2
  162. package/lib/theme/Icon/Arrow/index.d.ts +0 -2
  163. package/lib/theme/Icon/Close/index.d.ts +0 -2
  164. package/lib/theme/Icon/Copy/index.d.ts +0 -2
  165. package/lib/theme/Icon/DarkMode/index.d.ts +0 -2
  166. package/lib/theme/Icon/Edit/index.d.ts +0 -2
  167. package/lib/theme/Icon/ExternalLink/index.d.ts +0 -2
  168. package/lib/theme/Icon/Home/index.d.ts +0 -2
  169. package/lib/theme/Icon/Language/index.d.ts +0 -2
  170. package/lib/theme/Icon/LightMode/index.d.ts +0 -2
  171. package/lib/theme/Icon/Menu/index.d.ts +0 -2
  172. package/lib/theme/Icon/Socials/Default/index.d.ts +9 -0
  173. package/lib/theme/Icon/Socials/Default/index.js +30 -0
  174. package/lib/theme/Icon/Socials/GitHub/index.d.ts +9 -0
  175. package/lib/theme/Icon/Socials/GitHub/index.js +25 -0
  176. package/lib/theme/Icon/Socials/GitHub/styles.module.css +14 -0
  177. package/lib/theme/Icon/Socials/LinkedIn/index.d.ts +9 -0
  178. package/lib/theme/Icon/Socials/LinkedIn/index.js +24 -0
  179. package/lib/theme/Icon/Socials/StackOverflow/index.d.ts +9 -0
  180. package/lib/theme/Icon/Socials/StackOverflow/index.js +27 -0
  181. package/lib/theme/Icon/Socials/Twitter/index.d.ts +9 -0
  182. package/lib/theme/Icon/Socials/Twitter/index.js +24 -0
  183. package/lib/theme/Icon/Socials/X/index.d.ts +9 -0
  184. package/lib/theme/Icon/Socials/X/index.js +25 -0
  185. package/lib/theme/Icon/Socials/X/styles.module.css +14 -0
  186. package/lib/theme/Icon/Success/index.d.ts +0 -2
  187. package/lib/theme/Icon/WordWrap/index.d.ts +0 -2
  188. package/lib/theme/LastUpdated/index.d.ts +0 -2
  189. package/lib/theme/Layout/Provider/index.d.ts +0 -2
  190. package/lib/theme/Layout/Provider/index.js +1 -1
  191. package/lib/theme/Layout/index.d.ts +0 -3
  192. package/lib/theme/Logo/index.d.ts +0 -2
  193. package/lib/theme/MDXComponents/A.d.ts +0 -2
  194. package/lib/theme/MDXComponents/Code.d.ts +0 -2
  195. package/lib/theme/MDXComponents/Details.d.ts +0 -2
  196. package/lib/theme/MDXComponents/Heading.d.ts +0 -2
  197. package/lib/theme/MDXComponents/Img/index.d.ts +0 -2
  198. package/lib/theme/MDXComponents/Li.d.ts +0 -1
  199. package/lib/theme/MDXComponents/Pre.d.ts +0 -1
  200. package/lib/theme/MDXComponents/Ul/index.d.ts +0 -2
  201. package/lib/theme/MDXComponents/index.d.ts +0 -1
  202. package/lib/theme/MDXContent/index.d.ts +0 -2
  203. package/lib/theme/MDXPage/index.d.ts +0 -2
  204. package/lib/theme/MDXPage/index.js +10 -13
  205. package/lib/theme/Mermaid.d.ts +0 -1
  206. package/lib/theme/Navbar/ColorModeToggle/index.d.ts +0 -2
  207. package/lib/theme/Navbar/Content/index.d.ts +0 -1
  208. package/lib/theme/Navbar/Layout/index.d.ts +0 -2
  209. package/lib/theme/Navbar/Logo/index.d.ts +0 -1
  210. package/lib/theme/Navbar/MobileSidebar/Header/index.d.ts +0 -1
  211. package/lib/theme/Navbar/MobileSidebar/Layout/index.d.ts +0 -2
  212. package/lib/theme/Navbar/MobileSidebar/PrimaryMenu/index.d.ts +0 -1
  213. package/lib/theme/Navbar/MobileSidebar/SecondaryMenu/index.d.ts +0 -1
  214. package/lib/theme/Navbar/MobileSidebar/Toggle/index.d.ts +0 -1
  215. package/lib/theme/Navbar/MobileSidebar/index.d.ts +0 -1
  216. package/lib/theme/Navbar/Search/index.d.ts +0 -2
  217. package/lib/theme/Navbar/index.d.ts +0 -1
  218. package/lib/theme/NavbarItem/ComponentTypes.d.ts +0 -1
  219. package/lib/theme/NavbarItem/DefaultNavbarItem.d.ts +0 -2
  220. package/lib/theme/NavbarItem/DocNavbarItem.d.ts +0 -2
  221. package/lib/theme/NavbarItem/DocNavbarItem.js +4 -2
  222. package/lib/theme/NavbarItem/DocSidebarNavbarItem.d.ts +0 -2
  223. package/lib/theme/NavbarItem/DocSidebarNavbarItem.js +4 -2
  224. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.d.ts +0 -2
  225. package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +19 -14
  226. package/lib/theme/NavbarItem/DocsVersionNavbarItem.d.ts +0 -2
  227. package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +1 -1
  228. package/lib/theme/NavbarItem/DropdownNavbarItem/index.d.ts +0 -2
  229. package/lib/theme/NavbarItem/HtmlNavbarItem.d.ts +0 -2
  230. package/lib/theme/NavbarItem/LocaleDropdownNavbarItem/index.d.ts +0 -2
  231. package/lib/theme/NavbarItem/NavbarNavLink.d.ts +0 -2
  232. package/lib/theme/NavbarItem/SearchNavbarItem.d.ts +0 -2
  233. package/lib/theme/NavbarItem/index.d.ts +0 -2
  234. package/lib/theme/NotFound/Content/index.d.ts +0 -2
  235. package/lib/theme/NotFound/index.d.ts +0 -1
  236. package/lib/theme/PaginatorNavLink/index.d.ts +0 -2
  237. package/lib/theme/SearchBar.d.ts +0 -1
  238. package/lib/theme/SearchMetadata/index.d.ts +0 -2
  239. package/lib/theme/SiteMetadata/index.d.ts +0 -1
  240. package/lib/theme/SkipToContent/index.d.ts +0 -1
  241. package/lib/theme/TOC/index.d.ts +0 -2
  242. package/lib/theme/TOCCollapsible/CollapseButton/index.d.ts +0 -2
  243. package/lib/theme/TOCCollapsible/index.d.ts +0 -2
  244. package/lib/theme/TOCInline/index.d.ts +0 -2
  245. package/lib/theme/TOCItems/Tree.d.ts +0 -1
  246. package/lib/theme/TOCItems/index.d.ts +0 -2
  247. package/lib/theme/TabItem/index.d.ts +0 -2
  248. package/lib/theme/Tabs/index.d.ts +0 -2
  249. package/lib/theme/Tabs/index.js +3 -1
  250. package/lib/theme/Tag/index.d.ts +0 -2
  251. package/lib/theme/TagsListByLetter/index.d.ts +0 -2
  252. package/lib/theme/TagsListInline/index.d.ts +0 -2
  253. package/lib/theme/ThemedImage/index.d.ts +0 -2
  254. package/lib/translations.js +2 -3
  255. package/package.json +15 -15
  256. package/src/getSwizzleConfig.ts +32 -0
  257. package/src/options.ts +18 -2
  258. package/src/theme/Blog/Components/Author/Socials/index.tsx +66 -0
  259. package/src/theme/Blog/Components/Author/Socials/styles.module.css +39 -0
  260. package/src/theme/Blog/Components/Author/index.tsx +99 -0
  261. package/src/theme/Blog/Components/Author/styles.module.css +74 -0
  262. package/src/theme/Blog/Pages/BlogAuthorsListPage/index.tsx +62 -0
  263. package/src/theme/Blog/Pages/BlogAuthorsListPage/styles.module.css +11 -0
  264. package/src/theme/Blog/Pages/BlogAuthorsPostsPage/index.tsx +73 -0
  265. package/src/theme/BlogListPage/StructuredData/index.tsx +1 -1
  266. package/src/theme/BlogPostItem/Content/index.tsx +1 -1
  267. package/src/theme/BlogPostItem/Footer/index.tsx +1 -1
  268. package/src/theme/BlogPostItem/Header/Authors/index.tsx +5 -4
  269. package/src/theme/BlogPostItem/Header/Authors/styles.module.css +0 -1
  270. package/src/theme/BlogPostItem/Header/Info/index.tsx +2 -4
  271. package/src/theme/BlogPostItem/Header/Title/index.tsx +1 -1
  272. package/src/theme/BlogPostItem/index.tsx +1 -1
  273. package/src/theme/BlogPostItems/index.tsx +1 -1
  274. package/src/theme/BlogPostPage/Metadata/index.tsx +1 -1
  275. package/src/theme/BlogPostPage/StructuredData/index.tsx +1 -1
  276. package/src/theme/BlogPostPage/index.tsx +7 -4
  277. package/src/theme/BlogSidebar/Content/index.tsx +57 -0
  278. package/src/theme/BlogSidebar/Desktop/index.tsx +27 -17
  279. package/src/theme/BlogSidebar/Desktop/styles.module.css +5 -0
  280. package/src/theme/BlogSidebar/Mobile/index.tsx +29 -17
  281. package/src/theme/BlogSidebar/Mobile/styles.module.css +10 -0
  282. package/src/theme/BlogTagsPostsPage/index.tsx +3 -33
  283. package/src/theme/ContentVisibility/Draft/index.tsx +27 -0
  284. package/src/theme/{Unlisted → ContentVisibility/Unlisted}/index.tsx +1 -1
  285. package/src/theme/ContentVisibility/index.tsx +27 -0
  286. package/src/theme/DocBreadcrumbs/index.tsx +2 -4
  287. package/src/theme/DocCard/index.tsx +2 -2
  288. package/src/theme/DocCardList/index.tsx +1 -1
  289. package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +2 -4
  290. package/src/theme/DocItem/Content/index.tsx +1 -1
  291. package/src/theme/DocItem/Footer/index.tsx +1 -1
  292. package/src/theme/DocItem/Layout/index.tsx +4 -6
  293. package/src/theme/DocItem/Metadata/index.tsx +1 -1
  294. package/src/theme/DocItem/Paginator/index.tsx +1 -1
  295. package/src/theme/DocItem/TOC/Desktop/index.tsx +1 -1
  296. package/src/theme/DocItem/TOC/Mobile/index.tsx +1 -1
  297. package/src/theme/DocItem/index.tsx +1 -1
  298. package/src/theme/DocRoot/Layout/Main/index.tsx +1 -1
  299. package/src/theme/DocRoot/Layout/Sidebar/index.tsx +1 -1
  300. package/src/theme/DocRoot/Layout/index.tsx +1 -1
  301. package/src/theme/DocRoot/index.tsx +1 -1
  302. package/src/theme/DocSidebarItem/Category/index.tsx +2 -2
  303. package/src/theme/DocSidebarItem/Link/index.tsx +1 -1
  304. package/src/theme/DocSidebarItems/index.tsx +1 -1
  305. package/src/theme/DocTagDocListPage/index.tsx +1 -1
  306. package/src/theme/DocVersionBadge/index.tsx +1 -1
  307. package/src/theme/DocVersionBanner/index.tsx +1 -1
  308. package/src/theme/DocVersionRoot/index.tsx +3 -3
  309. package/src/theme/Icon/Socials/Default/index.tsx +33 -0
  310. package/src/theme/Icon/Socials/GitHub/index.tsx +29 -0
  311. package/src/theme/Icon/Socials/GitHub/styles.module.css +14 -0
  312. package/src/theme/Icon/Socials/LinkedIn/index.tsx +27 -0
  313. package/src/theme/Icon/Socials/StackOverflow/index.tsx +30 -0
  314. package/src/theme/Icon/Socials/Twitter/index.tsx +27 -0
  315. package/src/theme/Icon/Socials/X/index.tsx +29 -0
  316. package/src/theme/Icon/Socials/X/styles.module.css +14 -0
  317. package/src/theme/Layout/Provider/index.tsx +1 -1
  318. package/src/theme/MDXPage/index.tsx +10 -13
  319. package/src/theme/NavbarItem/DocNavbarItem.tsx +4 -2
  320. package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +4 -2
  321. package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +32 -16
  322. package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +1 -1
  323. package/src/theme/Tabs/index.tsx +3 -1
  324. package/src/theme-classic.d.ts +106 -12
  325. package/lib/theme/BlogPostItem/Header/Author/index.d.ts +0 -10
  326. package/lib/theme/BlogPostItem/Header/Author/index.js +0 -39
  327. package/src/theme/BlogPostItem/Header/Author/index.tsx +0 -47
  328. /package/lib/theme/{Unlisted → ContentVisibility/Unlisted}/index.js +0 -0
@@ -0,0 +1,62 @@
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, {type ReactNode} from 'react';
8
+ import clsx from 'clsx';
9
+ import {
10
+ PageMetadata,
11
+ HtmlClassNameProvider,
12
+ ThemeClassNames,
13
+ } from '@docusaurus/theme-common';
14
+ import {translateBlogAuthorsListPageTitle} from '@docusaurus/theme-common/internal';
15
+ import BlogLayout from '@theme/BlogLayout';
16
+ import type {Props} from '@theme/Blog/Pages/BlogAuthorsListPage';
17
+ import SearchMetadata from '@theme/SearchMetadata';
18
+ import Heading from '@theme/Heading';
19
+ import Author from '@theme/Blog/Components/Author';
20
+ import type {AuthorItemProp} from '@docusaurus/plugin-content-blog';
21
+ import styles from './styles.module.css';
22
+
23
+ function AuthorListItem({author}: {author: AuthorItemProp}) {
24
+ return (
25
+ <li className={styles.authorListItem}>
26
+ <Author as="h2" author={author} count={author.count} />
27
+ </li>
28
+ );
29
+ }
30
+
31
+ function AuthorsList({authors}: {authors: Props['authors']}) {
32
+ return (
33
+ <section className={clsx('margin-vert--lg', styles.authorsListSection)}>
34
+ <ul>
35
+ {authors.map((author) => (
36
+ <AuthorListItem key={author.key} author={author} />
37
+ ))}
38
+ </ul>
39
+ </section>
40
+ );
41
+ }
42
+
43
+ export default function BlogAuthorsListPage({
44
+ authors,
45
+ sidebar,
46
+ }: Props): ReactNode {
47
+ const title: string = translateBlogAuthorsListPageTitle();
48
+ return (
49
+ <HtmlClassNameProvider
50
+ className={clsx(
51
+ ThemeClassNames.wrapper.blogPages,
52
+ ThemeClassNames.page.blogAuthorsListPage,
53
+ )}>
54
+ <PageMetadata title={title} />
55
+ <SearchMetadata tag="blog_authors_list" />
56
+ <BlogLayout sidebar={sidebar}>
57
+ <Heading as="h1">{title}</Heading>
58
+ <AuthorsList authors={authors} />
59
+ </BlogLayout>
60
+ </HtmlClassNameProvider>
61
+ );
62
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ .authorListItem {
9
+ list-style-type: none;
10
+ margin-bottom: 2rem;
11
+ }
@@ -0,0 +1,73 @@
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
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+ import {
11
+ PageMetadata,
12
+ HtmlClassNameProvider,
13
+ ThemeClassNames,
14
+ } from '@docusaurus/theme-common';
15
+ import {
16
+ useBlogAuthorPageTitle,
17
+ BlogAuthorsListViewAllLabel,
18
+ } from '@docusaurus/theme-common/internal';
19
+ import Link from '@docusaurus/Link';
20
+ import {useBlogMetadata} from '@docusaurus/plugin-content-blog/client';
21
+ import BlogLayout from '@theme/BlogLayout';
22
+ import BlogListPaginator from '@theme/BlogListPaginator';
23
+ import SearchMetadata from '@theme/SearchMetadata';
24
+ import type {Props} from '@theme/Blog/Pages/BlogAuthorsPostsPage';
25
+ import BlogPostItems from '@theme/BlogPostItems';
26
+ import Author from '@theme/Blog/Components/Author';
27
+
28
+ function Metadata({author}: Props): JSX.Element {
29
+ const title = useBlogAuthorPageTitle(author);
30
+ return (
31
+ <>
32
+ <PageMetadata title={title} />
33
+ <SearchMetadata tag="blog_authors_posts" />
34
+ </>
35
+ );
36
+ }
37
+
38
+ function ViewAllAuthorsLink() {
39
+ const {authorsListPath} = useBlogMetadata();
40
+ return (
41
+ <Link href={authorsListPath}>
42
+ <BlogAuthorsListViewAllLabel />
43
+ </Link>
44
+ );
45
+ }
46
+
47
+ function Content({author, items, sidebar, listMetadata}: Props): JSX.Element {
48
+ return (
49
+ <BlogLayout sidebar={sidebar}>
50
+ <header className="margin-bottom--xl">
51
+ <Author as="h1" author={author} />
52
+ {author.description && <p>{author.description}</p>}
53
+ <ViewAllAuthorsLink />
54
+ </header>
55
+ <hr />
56
+ <BlogPostItems items={items} />
57
+ <BlogListPaginator metadata={listMetadata} />
58
+ </BlogLayout>
59
+ );
60
+ }
61
+
62
+ export default function BlogAuthorsPostsPage(props: Props): JSX.Element {
63
+ return (
64
+ <HtmlClassNameProvider
65
+ className={clsx(
66
+ ThemeClassNames.wrapper.blogPages,
67
+ ThemeClassNames.page.blogAuthorsPostsPage,
68
+ )}>
69
+ <Metadata {...props} />
70
+ <Content {...props} />
71
+ </HtmlClassNameProvider>
72
+ );
73
+ }
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import Head from '@docusaurus/Head';
10
- import {useBlogListPageStructuredData} from '@docusaurus/theme-common';
10
+ import {useBlogListPageStructuredData} from '@docusaurus/plugin-content-blog/client';
11
11
  import type {Props} from '@theme/BlogListPage/StructuredData';
12
12
 
13
13
  export default function BlogListPageStructuredData(props: Props): JSX.Element {
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
10
  import {blogPostContainerID} from '@docusaurus/utils-common';
11
- import {useBlogPost} from '@docusaurus/theme-common/internal';
11
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
12
12
  import MDXContent from '@theme/MDXContent';
13
13
  import type {Props} from '@theme/BlogPostItem/Content';
14
14
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
- import {useBlogPost} from '@docusaurus/theme-common/internal';
10
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
11
11
  import {ThemeClassNames} from '@docusaurus/theme-common';
12
12
  import EditMetaRow from '@theme/EditMetaRow';
13
13
  import TagsListInline from '@theme/TagsListInline';
@@ -7,8 +7,8 @@
7
7
 
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
- import {useBlogPost} from '@docusaurus/theme-common/internal';
11
- import BlogPostItemHeaderAuthor from '@theme/BlogPostItem/Header/Author';
10
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
11
+ import BlogAuthor from '@theme/Blog/Components/Author';
12
12
  import type {Props} from '@theme/BlogPostItem/Header/Authors';
13
13
  import styles from './styles.module.css';
14
14
 
@@ -25,6 +25,7 @@ export default function BlogPostItemHeaderAuthors({
25
25
  return null;
26
26
  }
27
27
  const imageOnly = authors.every(({name}) => !name);
28
+ const singleAuthor = authors.length === 1;
28
29
  return (
29
30
  <div
30
31
  className={clsx(
@@ -35,11 +36,11 @@ export default function BlogPostItemHeaderAuthors({
35
36
  {authors.map((author, idx) => (
36
37
  <div
37
38
  className={clsx(
38
- !imageOnly && 'col col--6',
39
+ !imageOnly && (singleAuthor ? 'col col--12' : 'col col--6'),
39
40
  imageOnly ? styles.imageOnlyAuthorCol : styles.authorCol,
40
41
  )}
41
42
  key={idx}>
42
- <BlogPostItemHeaderAuthor
43
+ <BlogAuthor
43
44
  author={{
44
45
  ...author,
45
46
  // Handle author images using relative paths
@@ -7,7 +7,6 @@
7
7
 
8
8
  .authorCol {
9
9
  max-width: inherit !important;
10
- flex-grow: 1 !important;
11
10
  }
12
11
 
13
12
  .imageOnlyAuthorRow {
@@ -9,10 +9,8 @@ import React from 'react';
9
9
  import clsx from 'clsx';
10
10
  import {translate} from '@docusaurus/Translate';
11
11
  import {usePluralForm} from '@docusaurus/theme-common';
12
- import {
13
- useBlogPost,
14
- useDateTimeFormat,
15
- } from '@docusaurus/theme-common/internal';
12
+ import {useDateTimeFormat} from '@docusaurus/theme-common/internal';
13
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
16
14
  import type {Props} from '@theme/BlogPostItem/Header/Info';
17
15
 
18
16
  import styles from './styles.module.css';
@@ -8,7 +8,7 @@
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
10
  import Link from '@docusaurus/Link';
11
- import {useBlogPost} from '@docusaurus/theme-common/internal';
11
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
12
12
  import type {Props} from '@theme/BlogPostItem/Header/Title';
13
13
 
14
14
  import styles from './styles.module.css';
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
- import {useBlogPost} from '@docusaurus/theme-common/internal';
10
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
11
11
  import BlogPostItemContainer from '@theme/BlogPostItem/Container';
12
12
  import BlogPostItemHeader from '@theme/BlogPostItem/Header';
13
13
  import BlogPostItemContent from '@theme/BlogPostItem/Content';
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import React from 'react';
9
- import {BlogPostProvider} from '@docusaurus/theme-common/internal';
9
+ import {BlogPostProvider} from '@docusaurus/plugin-content-blog/client';
10
10
  import BlogPostItem from '@theme/BlogPostItem';
11
11
  import type {Props} from '@theme/BlogPostItems';
12
12
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import {PageMetadata} from '@docusaurus/theme-common';
10
- import {useBlogPost} from '@docusaurus/theme-common/internal';
10
+ import {useBlogPost} from '@docusaurus/plugin-content-blog/client';
11
11
 
12
12
  export default function BlogPostPageMetadata(): JSX.Element {
13
13
  const {assets, metadata} = useBlogPost();
@@ -7,7 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import Head from '@docusaurus/Head';
10
- import {useBlogPostStructuredData} from '@docusaurus/theme-common';
10
+ import {useBlogPostStructuredData} from '@docusaurus/plugin-content-blog/client';
11
11
 
12
12
  export default function BlogPostStructuredData(): JSX.Element {
13
13
  const structuredData = useBlogPostStructuredData();
@@ -8,15 +8,18 @@
8
8
  import React, {type ReactNode} from 'react';
9
9
  import clsx from 'clsx';
10
10
  import {HtmlClassNameProvider, ThemeClassNames} from '@docusaurus/theme-common';
11
- import {BlogPostProvider, useBlogPost} from '@docusaurus/theme-common/internal';
11
+ import {
12
+ BlogPostProvider,
13
+ useBlogPost,
14
+ } from '@docusaurus/plugin-content-blog/client';
12
15
  import BlogLayout from '@theme/BlogLayout';
13
16
  import BlogPostItem from '@theme/BlogPostItem';
14
17
  import BlogPostPaginator from '@theme/BlogPostPaginator';
15
18
  import BlogPostPageMetadata from '@theme/BlogPostPage/Metadata';
16
19
  import BlogPostPageStructuredData from '@theme/BlogPostPage/StructuredData';
17
20
  import TOC from '@theme/TOC';
21
+ import ContentVisibility from '@theme/ContentVisibility';
18
22
  import type {Props} from '@theme/BlogPostPage';
19
- import Unlisted from '@theme/Unlisted';
20
23
  import type {BlogSidebar} from '@docusaurus/plugin-content-blog';
21
24
 
22
25
  function BlogPostPageContent({
@@ -27,7 +30,7 @@ function BlogPostPageContent({
27
30
  children: ReactNode;
28
31
  }): JSX.Element {
29
32
  const {metadata, toc} = useBlogPost();
30
- const {nextItem, prevItem, frontMatter, unlisted} = metadata;
33
+ const {nextItem, prevItem, frontMatter} = metadata;
31
34
  const {
32
35
  hide_table_of_contents: hideTableOfContents,
33
36
  toc_min_heading_level: tocMinHeadingLevel,
@@ -45,7 +48,7 @@ function BlogPostPageContent({
45
48
  />
46
49
  ) : undefined
47
50
  }>
48
- {unlisted && <Unlisted />}
51
+ <ContentVisibility metadata={metadata} />
49
52
 
50
53
  <BlogPostItem>{children}</BlogPostItem>
51
54
 
@@ -0,0 +1,57 @@
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, {memo, type ReactNode} from 'react';
8
+ import {useThemeConfig} from '@docusaurus/theme-common';
9
+ import {groupBlogSidebarItemsByYear} from '@docusaurus/plugin-content-blog/client';
10
+ import Heading from '@theme/Heading';
11
+ import type {Props} from '@theme/BlogSidebar/Content';
12
+
13
+ function BlogSidebarYearGroup({
14
+ year,
15
+ yearGroupHeadingClassName,
16
+ children,
17
+ }: {
18
+ year: string;
19
+ yearGroupHeadingClassName?: string;
20
+ children: ReactNode;
21
+ }) {
22
+ return (
23
+ <div role="group">
24
+ <Heading as="h3" className={yearGroupHeadingClassName}>
25
+ {year}
26
+ </Heading>
27
+ {children}
28
+ </div>
29
+ );
30
+ }
31
+
32
+ function BlogSidebarContent({
33
+ items,
34
+ yearGroupHeadingClassName,
35
+ ListComponent,
36
+ }: Props): ReactNode {
37
+ const themeConfig = useThemeConfig();
38
+ if (themeConfig.blog.sidebar.groupByYear) {
39
+ const itemsByYear = groupBlogSidebarItemsByYear(items);
40
+ return (
41
+ <>
42
+ {itemsByYear.map(([year, yearItems]) => (
43
+ <BlogSidebarYearGroup
44
+ key={year}
45
+ year={year}
46
+ yearGroupHeadingClassName={yearGroupHeadingClassName}>
47
+ <ListComponent items={yearItems} />
48
+ </BlogSidebarYearGroup>
49
+ ))}
50
+ </>
51
+ );
52
+ } else {
53
+ return <ListComponent items={items} />;
54
+ }
55
+ }
56
+
57
+ export default memo(BlogSidebarContent);
@@ -5,16 +5,32 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React from 'react';
8
+ import React, {memo} from 'react';
9
9
  import clsx from 'clsx';
10
- import Link from '@docusaurus/Link';
11
10
  import {translate} from '@docusaurus/Translate';
12
- import {useVisibleBlogSidebarItems} from '@docusaurus/theme-common/internal';
11
+ import {
12
+ useVisibleBlogSidebarItems,
13
+ BlogSidebarItemList,
14
+ } from '@docusaurus/plugin-content-blog/client';
15
+ import BlogSidebarContent from '@theme/BlogSidebar/Content';
16
+ import type {Props as BlogSidebarContentProps} from '@theme/BlogSidebar/Content';
13
17
  import type {Props} from '@theme/BlogSidebar/Desktop';
14
18
 
15
19
  import styles from './styles.module.css';
16
20
 
17
- export default function BlogSidebarDesktop({sidebar}: Props): JSX.Element {
21
+ const ListComponent: BlogSidebarContentProps['ListComponent'] = ({items}) => {
22
+ return (
23
+ <BlogSidebarItemList
24
+ items={items}
25
+ ulClassName={clsx(styles.sidebarItemList, 'clean-list')}
26
+ liClassName={styles.sidebarItem}
27
+ linkClassName={styles.sidebarItemLink}
28
+ linkActiveClassName={styles.sidebarItemLinkActive}
29
+ />
30
+ );
31
+ };
32
+
33
+ function BlogSidebarDesktop({sidebar}: Props) {
18
34
  const items = useVisibleBlogSidebarItems(sidebar.items);
19
35
  return (
20
36
  <aside className="col col--3">
@@ -28,20 +44,14 @@ export default function BlogSidebarDesktop({sidebar}: Props): JSX.Element {
28
44
  <div className={clsx(styles.sidebarItemTitle, 'margin-bottom--md')}>
29
45
  {sidebar.title}
30
46
  </div>
31
- <ul className={clsx(styles.sidebarItemList, 'clean-list')}>
32
- {items.map((item) => (
33
- <li key={item.permalink} className={styles.sidebarItem}>
34
- <Link
35
- isNavLink
36
- to={item.permalink}
37
- className={styles.sidebarItemLink}
38
- activeClassName={styles.sidebarItemLinkActive}>
39
- {item.title}
40
- </Link>
41
- </li>
42
- ))}
43
- </ul>
47
+ <BlogSidebarContent
48
+ items={items}
49
+ ListComponent={ListComponent}
50
+ yearGroupHeadingClassName={styles.yearGroupHeading}
51
+ />
44
52
  </nav>
45
53
  </aside>
46
54
  );
47
55
  }
56
+
57
+ export default memo(BlogSidebarDesktop);
@@ -43,3 +43,8 @@
43
43
  display: none;
44
44
  }
45
45
  }
46
+
47
+ .yearGroupHeading {
48
+ margin-top: 1.6rem;
49
+ margin-bottom: 0.4rem;
50
+ }
@@ -5,32 +5,42 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import React from 'react';
9
- import Link from '@docusaurus/Link';
10
- import {useVisibleBlogSidebarItems} from '@docusaurus/theme-common/internal';
8
+ import React, {memo} from 'react';
9
+ import {
10
+ useVisibleBlogSidebarItems,
11
+ BlogSidebarItemList,
12
+ } from '@docusaurus/plugin-content-blog/client';
11
13
  import {NavbarSecondaryMenuFiller} from '@docusaurus/theme-common';
14
+ import BlogSidebarContent from '@theme/BlogSidebar/Content';
12
15
  import type {Props} from '@theme/BlogSidebar/Mobile';
16
+ import type {Props as BlogSidebarContentProps} from '@theme/BlogSidebar/Content';
17
+
18
+ import styles from './styles.module.css';
19
+
20
+ const ListComponent: BlogSidebarContentProps['ListComponent'] = ({items}) => {
21
+ return (
22
+ <BlogSidebarItemList
23
+ items={items}
24
+ ulClassName="menu__list"
25
+ liClassName="menu__list-item"
26
+ linkClassName="menu__link"
27
+ linkActiveClassName="menu__link--active"
28
+ />
29
+ );
30
+ };
13
31
 
14
32
  function BlogSidebarMobileSecondaryMenu({sidebar}: Props): JSX.Element {
15
33
  const items = useVisibleBlogSidebarItems(sidebar.items);
16
34
  return (
17
- <ul className="menu__list">
18
- {items.map((item) => (
19
- <li key={item.permalink} className="menu__list-item">
20
- <Link
21
- isNavLink
22
- to={item.permalink}
23
- className="menu__link"
24
- activeClassName="menu__link--active">
25
- {item.title}
26
- </Link>
27
- </li>
28
- ))}
29
- </ul>
35
+ <BlogSidebarContent
36
+ items={items}
37
+ ListComponent={ListComponent}
38
+ yearGroupHeadingClassName={styles.yearGroupHeading}
39
+ />
30
40
  );
31
41
  }
32
42
 
33
- export default function BlogSidebarMobile(props: Props): JSX.Element {
43
+ function BlogSidebarMobile(props: Props): JSX.Element {
34
44
  return (
35
45
  <NavbarSecondaryMenuFiller
36
46
  component={BlogSidebarMobileSecondaryMenu}
@@ -38,3 +48,5 @@ export default function BlogSidebarMobile(props: Props): JSX.Element {
38
48
  />
39
49
  );
40
50
  }
51
+
52
+ export default memo(BlogSidebarMobile);
@@ -0,0 +1,10 @@
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
+ .yearGroupHeading {
9
+ margin: 1rem 0.75rem 0.5rem;
10
+ }
@@ -7,52 +7,22 @@
7
7
 
8
8
  import React from 'react';
9
9
  import clsx from 'clsx';
10
- import Translate, {translate} from '@docusaurus/Translate';
10
+ import Translate from '@docusaurus/Translate';
11
11
  import {
12
12
  PageMetadata,
13
13
  HtmlClassNameProvider,
14
14
  ThemeClassNames,
15
- usePluralForm,
16
15
  } from '@docusaurus/theme-common';
16
+ import {useBlogTagsPostsPageTitle} from '@docusaurus/theme-common/internal';
17
17
  import Link from '@docusaurus/Link';
18
18
  import BlogLayout from '@theme/BlogLayout';
19
19
  import BlogListPaginator from '@theme/BlogListPaginator';
20
20
  import SearchMetadata from '@theme/SearchMetadata';
21
21
  import type {Props} from '@theme/BlogTagsPostsPage';
22
22
  import BlogPostItems from '@theme/BlogPostItems';
23
- import Unlisted from '@theme/Unlisted';
23
+ import Unlisted from '@theme/ContentVisibility/Unlisted';
24
24
  import Heading from '@theme/Heading';
25
25
 
26
- // Very simple pluralization: probably good enough for now
27
- function useBlogPostsPlural() {
28
- const {selectMessage} = usePluralForm();
29
- return (count: number) =>
30
- selectMessage(
31
- count,
32
- translate(
33
- {
34
- id: 'theme.blog.post.plurals',
35
- description:
36
- '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)',
37
- message: 'One post|{count} posts',
38
- },
39
- {count},
40
- ),
41
- );
42
- }
43
-
44
- function useBlogTagsPostsPageTitle(tag: Props['tag']): string {
45
- const blogPostsPlural = useBlogPostsPlural();
46
- return translate(
47
- {
48
- id: 'theme.blog.tagTitle',
49
- description: 'The title of the page for a blog tag',
50
- message: '{nPosts} tagged with "{tagName}"',
51
- },
52
- {nPosts: blogPostsPlural(tag.count), tagName: tag.label},
53
- );
54
- }
55
-
56
26
  function BlogTagsPostsPageMetadata({tag}: Props): JSX.Element {
57
27
  const title = useBlogTagsPostsPageTitle(tag);
58
28
  return (
@@ -0,0 +1,27 @@
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
+ import React from 'react';
9
+ import clsx from 'clsx';
10
+ import {
11
+ ThemeClassNames,
12
+ DraftBannerTitle,
13
+ DraftBannerMessage,
14
+ } from '@docusaurus/theme-common';
15
+ import Admonition from '@theme/Admonition';
16
+ import type {Props} from '@theme/ContentVisibility/Draft';
17
+
18
+ export default function Draft({className}: Props): JSX.Element | null {
19
+ return (
20
+ <Admonition
21
+ type="caution"
22
+ title={<DraftBannerTitle />}
23
+ className={clsx(className, ThemeClassNames.common.draftBanner)}>
24
+ <DraftBannerMessage />
25
+ </Admonition>
26
+ );
27
+ }
@@ -14,7 +14,7 @@ import {
14
14
  UnlistedMetadata,
15
15
  } from '@docusaurus/theme-common';
16
16
  import Admonition from '@theme/Admonition';
17
- import type {Props} from '@theme/Unlisted';
17
+ import type {Props} from '@theme/ContentVisibility/Unlisted';
18
18
 
19
19
  function UnlistedBanner({className}: Props) {
20
20
  return (
@@ -0,0 +1,27 @@
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
+ import React from 'react';
9
+
10
+ import type {Props} from '@theme/ContentVisibility';
11
+ import Draft from '@theme/ContentVisibility/Draft';
12
+ import Unlisted from '@theme/ContentVisibility/Unlisted';
13
+
14
+ export default function ContentVisibility({
15
+ metadata,
16
+ }: Props): JSX.Element | null {
17
+ const {unlisted, frontMatter} = metadata;
18
+ // Reading draft/unlisted status from frontMatter is useful to display
19
+ // the banners in dev mode (in dev, metadata.unlisted is always false)
20
+ // See https://github.com/facebook/docusaurus/issues/8285
21
+ return (
22
+ <>
23
+ {(unlisted || frontMatter.unlisted) && <Unlisted />}
24
+ {frontMatter.draft && <Draft />}
25
+ </>
26
+ );
27
+ }