mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-19 03:57:01 +02:00
* blog sidebar POC * polish blog post sidebar * add doc for blogSidebarCount * Update packages/docusaurus-theme-classic/src/theme/BlogSidebar/styles.module.css Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com> Co-authored-by: Alexey Pyltsyn <lex61rus@gmail.com>
77 lines
2.7 KiB
TypeScript
77 lines
2.7 KiB
TypeScript
/**
|
|
* 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 Layout from '@theme/Layout';
|
|
import BlogPostItem from '@theme/BlogPostItem';
|
|
import BlogPostPaginator from '@theme/BlogPostPaginator';
|
|
import type {Props} from '@theme/BlogPostPage';
|
|
import BlogSidebar from '@theme/BlogSidebar';
|
|
import TOC from '@theme/TOC';
|
|
|
|
function BlogPostPage(props: Props): JSX.Element {
|
|
const {content: BlogPostContents, sidebar} = props;
|
|
const {frontMatter, metadata} = BlogPostContents;
|
|
const {title, description, nextItem, prevItem, editUrl} = metadata;
|
|
const {hide_table_of_contents: hideTableOfContents} = frontMatter;
|
|
|
|
return (
|
|
<Layout title={title} description={description}>
|
|
{BlogPostContents && (
|
|
<div className="container margin-vert--lg">
|
|
<div className="row">
|
|
<div className="col col--2">
|
|
<BlogSidebar sidebar={sidebar} />
|
|
</div>
|
|
<div className="col col--8">
|
|
<BlogPostItem
|
|
frontMatter={frontMatter}
|
|
metadata={metadata}
|
|
isBlogPostPage>
|
|
<BlogPostContents />
|
|
</BlogPostItem>
|
|
<div>
|
|
{editUrl && (
|
|
<a href={editUrl} target="_blank" rel="noreferrer noopener">
|
|
<svg
|
|
fill="currentColor"
|
|
height="1.2em"
|
|
width="1.2em"
|
|
preserveAspectRatio="xMidYMid meet"
|
|
viewBox="0 0 40 40"
|
|
style={{
|
|
marginRight: '0.3em',
|
|
verticalAlign: 'sub',
|
|
}}>
|
|
<g>
|
|
<path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z" />
|
|
</g>
|
|
</svg>
|
|
Edit this page
|
|
</a>
|
|
)}
|
|
</div>
|
|
{(nextItem || prevItem) && (
|
|
<div className="margin-vert--xl">
|
|
<BlogPostPaginator nextItem={nextItem} prevItem={prevItem} />
|
|
</div>
|
|
)}
|
|
</div>
|
|
{!hideTableOfContents && BlogPostContents.rightToc && (
|
|
<div className="col col--2">
|
|
<TOC headings={BlogPostContents.rightToc} />
|
|
</div>
|
|
)}
|
|
</div>
|
|
</div>
|
|
)}
|
|
</Layout>
|
|
);
|
|
}
|
|
|
|
export default BlogPostPage;
|