/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import React, {type ReactNode} from 'react'; import clsx from 'clsx'; import {HtmlClassNameProvider, ThemeClassNames} from '@docusaurus/theme-common'; import { BlogPostProvider, useBlogPost, } from '@docusaurus/plugin-content-blog/client'; import BlogLayout from '@theme/BlogLayout'; import BlogPostItem from '@theme/BlogPostItem'; import BlogPostPaginator from '@theme/BlogPostPaginator'; import BlogPostPageMetadata from '@theme/BlogPostPage/Metadata'; import BlogPostPageStructuredData from '@theme/BlogPostPage/StructuredData'; import TOC from '@theme/TOC'; import type {Props} from '@theme/BlogPostPage'; import Unlisted from '@theme/Unlisted'; import type {BlogSidebar} from '@docusaurus/plugin-content-blog'; function BlogPostPageContent({ sidebar, children, }: { sidebar: BlogSidebar; children: ReactNode; }): JSX.Element { const {metadata, toc} = useBlogPost(); const {nextItem, prevItem, frontMatter, unlisted} = metadata; const { hide_table_of_contents: hideTableOfContents, toc_min_heading_level: tocMinHeadingLevel, toc_max_heading_level: tocMaxHeadingLevel, } = frontMatter; return ( 0 ? ( ) : undefined }> {unlisted && } {children} {(nextItem || prevItem) && ( )} ); } export default function BlogPostPage(props: Props): JSX.Element { const BlogPostContent = props.content; return ( ); }