mirror of
https://github.com/Snigdha-OS/documentation.git
synced 2025-09-15 20:34:56 +02:00
63 lines
2.0 KiB
JavaScript
63 lines
2.0 KiB
JavaScript
/**
|
|
* 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 from 'react';
|
|
import clsx from 'clsx';
|
|
import {HtmlClassNameProvider, ThemeClassNames} from '@docusaurus/theme-common';
|
|
import {BlogPostProvider, useBlogPost} from '@docusaurus/theme-common/internal';
|
|
import BlogLayout from '@theme/BlogLayout';
|
|
import BlogPostItem from '@theme/BlogPostItem';
|
|
import BlogPostPaginator from '@theme/BlogPostPaginator';
|
|
import BlogPostPageMetadata from '@theme/BlogPostPage/Metadata';
|
|
import TOC from '@theme/TOC';
|
|
import Unlisted from '@theme/Unlisted';
|
|
function BlogPostPageContent({sidebar, children}) {
|
|
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 (
|
|
<BlogLayout
|
|
sidebar={sidebar}
|
|
toc={
|
|
!hideTableOfContents && toc.length > 0 ? (
|
|
<TOC
|
|
toc={toc}
|
|
minHeadingLevel={tocMinHeadingLevel}
|
|
maxHeadingLevel={tocMaxHeadingLevel}
|
|
/>
|
|
) : undefined
|
|
}>
|
|
{unlisted && <Unlisted />}
|
|
<BlogPostItem>{children}</BlogPostItem>
|
|
|
|
{(nextItem || prevItem) && (
|
|
<BlogPostPaginator nextItem={nextItem} prevItem={prevItem} />
|
|
)}
|
|
</BlogLayout>
|
|
);
|
|
}
|
|
export default function BlogPostPage(props) {
|
|
const BlogPostContent = props.content;
|
|
return (
|
|
<BlogPostProvider content={props.content} isBlogPostPage>
|
|
<HtmlClassNameProvider
|
|
className={clsx(
|
|
ThemeClassNames.wrapper.blogPages,
|
|
ThemeClassNames.page.blogPostPage,
|
|
)}>
|
|
<BlogPostPageMetadata />
|
|
<BlogPostPageContent sidebar={props.sidebar}>
|
|
<BlogPostContent />
|
|
</BlogPostPageContent>
|
|
</HtmlClassNameProvider>
|
|
</BlogPostProvider>
|
|
);
|
|
}
|