feat: implement in BlogPostPage-remove Seo changes

This commit is contained in:
John Reilly 2021-08-19 18:28:02 +01:00
parent 88e6d74609
commit 1cba459bc9
4 changed files with 12 additions and 16 deletions

View file

@ -132,7 +132,6 @@ declare module '@theme/Seo' {
readonly description?: string; readonly description?: string;
readonly keywords?: readonly string[] | string; readonly keywords?: readonly string[] | string;
readonly image?: string; readonly image?: string;
readonly children?: ReactNode;
}; };
const Seo: (props: Props) => JSX.Element; const Seo: (props: Props) => JSX.Element;

View file

@ -129,18 +129,7 @@ function BlogPostItem(props: Props): JSX.Element {
return ( return (
<> <>
{isBlogPostPage ? ( <Seo {...{keywords, image}} />
<Seo {...{keywords, image}}>
<meta property="og:type" content="article" />
<meta property="article:published_time" content={date} />
{authorURL && <meta property="article:author" content={authorURL} />}
{frontMatter.tags && (
<meta property="article:tag" content={frontMatter.tags.join(',')} />
)}
</Seo>
) : (
<Seo {...{keywords, image}} />
)}
<article <article
className={!isBlogPostPage ? 'margin-bottom--xl' : undefined} className={!isBlogPostPage ? 'margin-bottom--xl' : undefined}

View file

@ -11,12 +11,14 @@ import BlogPostItem from '@theme/BlogPostItem';
import BlogPostPaginator from '@theme/BlogPostPaginator'; import BlogPostPaginator from '@theme/BlogPostPaginator';
import type {Props} from '@theme/BlogPostPage'; import type {Props} from '@theme/BlogPostPage';
import {ThemeClassNames} from '@docusaurus/theme-common'; import {ThemeClassNames} from '@docusaurus/theme-common';
import Head from '@docusaurus/Head';
function BlogPostPage(props: Props): JSX.Element { function BlogPostPage(props: Props): JSX.Element {
const {content: BlogPostContents, sidebar} = props; const {content: BlogPostContents, sidebar} = props;
const {frontMatter, frontMatterAssets, metadata} = BlogPostContents; const {frontMatter, frontMatterAssets, metadata} = BlogPostContents;
const {title, description, nextItem, prevItem} = metadata; const {title, description, nextItem, prevItem, date} = metadata;
const {hide_table_of_contents: hideTableOfContents} = frontMatter; const {hide_table_of_contents: hideTableOfContents} = frontMatter;
const authorURL = frontMatter.author_url || frontMatter.authorURL;
return ( return (
<BlogLayout <BlogLayout
@ -30,6 +32,14 @@ function BlogPostPage(props: Props): JSX.Element {
? BlogPostContents.toc ? BlogPostContents.toc
: undefined : undefined
}> }>
<Head>
<meta property="og:type" content="article" />
<meta property="article:published_time" content={date} />
{authorURL && <meta property="article:author" content={authorURL} />}
{frontMatter.tags && (
<meta property="article:tag" content={frontMatter.tags.join(',')} />
)}
</Head>
<BlogPostItem <BlogPostItem
frontMatter={frontMatter} frontMatter={frontMatter}
frontMatterAssets={frontMatterAssets} frontMatterAssets={frontMatterAssets}

View file

@ -17,7 +17,6 @@ export default function Seo({
description, description,
keywords, keywords,
image, image,
children,
}: Props): JSX.Element { }: Props): JSX.Element {
const {image: defaultImage} = useThemeConfig(); const {image: defaultImage} = useThemeConfig();
const pageTitle = useTitleFormatter(title); const pageTitle = useTitleFormatter(title);
@ -42,7 +41,6 @@ export default function Seo({
{pageImage && <meta property="og:image" content={pageImage} />} {pageImage && <meta property="og:image" content={pageImage} />}
{pageImage && <meta name="twitter:image" content={pageImage} />} {pageImage && <meta name="twitter:image" content={pageImage} />}
{children}
</Head> </Head>
); );
} }