Files
documentation/node_modules/@docusaurus/theme-classic/lib/theme/MDXPage/index.js
2024-03-22 03:47:51 +05:30

69 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 {
PageMetadata,
HtmlClassNameProvider,
ThemeClassNames,
} from '@docusaurus/theme-common';
import Layout from '@theme/Layout';
import MDXContent from '@theme/MDXContent';
import TOC from '@theme/TOC';
import Unlisted from '@theme/Unlisted';
import styles from './styles.module.css';
export default function MDXPage(props) {
const {content: MDXPageContent} = props;
const {
metadata: {title, description, frontMatter, unlisted},
assets,
} = MDXPageContent;
const {
keywords,
wrapperClassName,
hide_table_of_contents: hideTableOfContents,
} = frontMatter;
const image = assets.image ?? frontMatter.image;
return (
<HtmlClassNameProvider
className={clsx(
wrapperClassName ?? ThemeClassNames.wrapper.mdxPages,
ThemeClassNames.page.mdxPage,
)}>
<Layout>
<PageMetadata
title={title}
description={description}
keywords={keywords}
image={image}
/>
<main className="container container--fluid margin-vert--lg">
<div className={clsx('row', styles.mdxPageWrapper)}>
<div className={clsx('col', !hideTableOfContents && 'col--8')}>
{unlisted && <Unlisted />}
<article>
<MDXContent>
<MDXPageContent />
</MDXContent>
</article>
</div>
{!hideTableOfContents && MDXPageContent.toc.length > 0 && (
<div className="col col--2">
<TOC
toc={MDXPageContent.toc}
minHeadingLevel={frontMatter.toc_min_heading_level}
maxHeadingLevel={frontMatter.toc_max_heading_level}
/>
</div>
)}
</div>
</main>
</Layout>
</HtmlClassNameProvider>
);
}