diff --git a/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx b/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx index bfb4ea0745..e941de54d7 100644 --- a/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx @@ -82,15 +82,13 @@ function CanonicalUrlHeaders({permalink}: {permalink?: string}) { export default function LayoutHead(props: Props): JSX.Element { const { - siteConfig, + siteConfig: { + favicon, + themeConfig: {metadatas}, + }, i18n: {currentLocale, localeConfigs}, } = useDocusaurusContext(); - const { - favicon, - themeConfig: {image: defaultImage, metadatas}, - } = siteConfig; const {title, description, image, keywords, searchMetadatas} = props; - const faviconUrl = useBaseUrl(favicon); // See https://github.com/facebook/docusaurus/issues/3317#issuecomment-754661855 @@ -105,7 +103,7 @@ export default function LayoutHead(props: Props): JSX.Element { {favicon && } - + diff --git a/packages/docusaurus-theme-classic/src/theme/Seo/index.tsx b/packages/docusaurus-theme-classic/src/theme/Seo/index.tsx index c7c952f0af..be5aaeb79a 100644 --- a/packages/docusaurus-theme-classic/src/theme/Seo/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Seo/index.tsx @@ -7,8 +7,9 @@ import React from 'react'; import Head from '@docusaurus/Head'; +import {useThemeConfig, useTitleFormatter} from '@docusaurus/theme-common'; import useBaseUrl from '@docusaurus/useBaseUrl'; -import {useTitleFormatter} from '@docusaurus/theme-common'; + import type {Props} from '@theme/Seo'; export default function Seo({ @@ -17,13 +18,14 @@ export default function Seo({ keywords, image, }: Props): JSX.Element { - const metaTitle = useTitleFormatter(title); - const metaImageUrl = useBaseUrl(image, {absolute: true}); + const {image: defaultImage} = useThemeConfig(); + const pageTitle = useTitleFormatter(title); + const pageImage = useBaseUrl(image || defaultImage, {absolute: true}); return ( - {title && {metaTitle}} - {title && } + {pageTitle} + {description && } {description && } @@ -37,9 +39,9 @@ export default function Seo({ /> )} - {image && } - {image && } - {image && } + {pageImage && } + {pageImage && } + {pageImage && } ); } diff --git a/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts b/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts index 5289da2cf4..93e28cdd5b 100644 --- a/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts +++ b/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts @@ -100,6 +100,7 @@ export type ThemeConfig = { prism: PrismConfig; footer?: Footer; hideableSidebar: boolean; + image: string; }; export function useThemeConfig(): ThemeConfig {