From 347f6fe7c113690bb9680debb506b1e497cc081d Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Fri, 13 Aug 2021 16:14:49 +0300 Subject: [PATCH 1/2] refactor: add blog microdata in markup intead of use JSON-LD --- .../src/theme/BlogLayout/index.tsx | 4 +- .../src/theme/BlogPostItem/index.tsx | 56 ++++++++++++++----- .../src/theme/BlogPostPage/index.tsx | 6 -- .../theme/BlogPostStructuredData/index.tsx | 47 ---------------- .../docusaurus-theme-classic/src/types.d.ts | 18 ------ 5 files changed, 44 insertions(+), 87 deletions(-) delete mode 100644 packages/docusaurus-theme-classic/src/theme/BlogPostStructuredData/index.tsx diff --git a/packages/docusaurus-theme-classic/src/theme/BlogLayout/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogLayout/index.tsx index f99aa4c5f2f9..e5c29fcdc03e 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogLayout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogLayout/index.tsx @@ -31,7 +31,9 @@ function BlogLayout(props: Props): JSX.Element { className={clsx('col', { 'col--7': hasSidebar, 'col--9 col--offset-1': !hasSidebar, - })}> + })} + itemScope + itemType="http://schema.org/Blog"> {children} {toc && ( diff --git a/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx index 7ed64193b359..b796c2861e16 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx @@ -10,6 +10,7 @@ import clsx from 'clsx'; import {MDXProvider} from '@mdx-js/react'; import Translate, {translate} from '@docusaurus/Translate'; import Link from '@docusaurus/Link'; +import {useBaseUrlUtils} from '@docusaurus/useBaseUrl'; import {usePluralForm} from '@docusaurus/theme-common'; import MDXComponents from '@theme/MDXComponents'; import Seo from '@theme/Seo'; @@ -40,6 +41,7 @@ function useReadingTimePlural() { function BlogPostItem(props: Props): JSX.Element { const readingTimePlural = useReadingTimePlural(); + const {withBaseUrl} = useBaseUrlUtils(); const { children, frontMatter, @@ -74,11 +76,19 @@ function BlogPostItem(props: Props): JSX.Element { return (
- - {isBlogPostPage ? title : {title}} + + {isBlogPostPage ? ( + title + ) : ( + + {title} + + )}
- + {readingTime && ( <> @@ -93,16 +103,22 @@ function BlogPostItem(props: Props): JSX.Element { {author} )} -
- {author && ( - <> -
- {author} -
- {authorTitle} - - )} -
+ {author && ( + + )}
); @@ -112,9 +128,19 @@ function BlogPostItem(props: Props): JSX.Element { <> -
+
{renderPostHeader()} -
+ {image && ( + + )} +
{children}
{(tags.length > 0 || truncated) && ( diff --git a/packages/docusaurus-theme-classic/src/theme/BlogPostPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogPostPage/index.tsx index 84216cab281b..455cfa7f4862 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogPostPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogPostPage/index.tsx @@ -8,7 +8,6 @@ import React from 'react'; import BlogLayout from '@theme/BlogLayout'; import BlogPostItem from '@theme/BlogPostItem'; -import BlogPostStructuredData from '@theme/BlogPostStructuredData'; import BlogPostPaginator from '@theme/BlogPostPaginator'; import type {Props} from '@theme/BlogPostPage'; import {ThemeClassNames} from '@docusaurus/theme-common'; @@ -31,11 +30,6 @@ function BlogPostPage(props: Props): JSX.Element { ? BlogPostContents.toc : undefined }> - - - - ); -} - -export default BlogPostStructuredData; diff --git a/packages/docusaurus-theme-classic/src/types.d.ts b/packages/docusaurus-theme-classic/src/types.d.ts index 22f3be8d390d..831e8361d7d0 100644 --- a/packages/docusaurus-theme-classic/src/types.d.ts +++ b/packages/docusaurus-theme-classic/src/types.d.ts @@ -46,24 +46,6 @@ declare module '@theme/BlogPostItem' { export default BlogPostItem; } -declare module '@theme/BlogPostStructuredData' { - import type { - FrontMatter, - FrontMatterAssets, - Metadata, - } from '@theme/BlogPostPage'; - - export type Props = { - readonly frontMatter: FrontMatter; - readonly frontMatterAssets: FrontMatterAssets; - readonly metadata: Metadata; - readonly truncated?: string | boolean; - }; - - const BlogPostStructuredData: (props: Props) => JSX.Element; - export default BlogPostStructuredData; -} - declare module '@theme/BlogPostPaginator' { type Item = {readonly title: string; readonly permalink: string}; From a6a9d53665741727faefdfef1796df974cba137c Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Fri, 13 Aug 2021 16:26:51 +0300 Subject: [PATCH 2/2] Add check for authorTitle --- .../src/theme/BlogPostItem/index.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx index b796c2861e16..325b559c4600 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogPostItem/index.tsx @@ -114,9 +114,12 @@ function BlogPostItem(props: Props): JSX.Element { {author}
- - {authorTitle} - + + {authorTitle && ( + + {authorTitle} + + )} )} @@ -134,15 +137,18 @@ function BlogPostItem(props: Props): JSX.Element { itemScope itemType="http://schema.org/BlogPosting"> {renderPostHeader()} + {image && ( )} +
{children}
+ {(tags.length > 0 || truncated) && (