mirror of
https://github.com/facebook/docusaurus.git
synced 2025-06-08 22:03:01 +02:00
fix(v2): use page title from config if not set (#4600)
This commit is contained in:
parent
6b0df65786
commit
2b4a52e27a
3 changed files with 16 additions and 15 deletions
|
@ -82,15 +82,13 @@ function CanonicalUrlHeaders({permalink}: {permalink?: string}) {
|
||||||
|
|
||||||
export default function LayoutHead(props: Props): JSX.Element {
|
export default function LayoutHead(props: Props): JSX.Element {
|
||||||
const {
|
const {
|
||||||
siteConfig,
|
siteConfig: {
|
||||||
|
favicon,
|
||||||
|
themeConfig: {metadatas},
|
||||||
|
},
|
||||||
i18n: {currentLocale, localeConfigs},
|
i18n: {currentLocale, localeConfigs},
|
||||||
} = useDocusaurusContext();
|
} = useDocusaurusContext();
|
||||||
const {
|
|
||||||
favicon,
|
|
||||||
themeConfig: {image: defaultImage, metadatas},
|
|
||||||
} = siteConfig;
|
|
||||||
const {title, description, image, keywords, searchMetadatas} = props;
|
const {title, description, image, keywords, searchMetadatas} = props;
|
||||||
|
|
||||||
const faviconUrl = useBaseUrl(favicon);
|
const faviconUrl = useBaseUrl(favicon);
|
||||||
|
|
||||||
// See https://github.com/facebook/docusaurus/issues/3317#issuecomment-754661855
|
// See https://github.com/facebook/docusaurus/issues/3317#issuecomment-754661855
|
||||||
|
@ -105,7 +103,7 @@ export default function LayoutHead(props: Props): JSX.Element {
|
||||||
{favicon && <link rel="shortcut icon" href={faviconUrl} />}
|
{favicon && <link rel="shortcut icon" href={faviconUrl} />}
|
||||||
</Head>
|
</Head>
|
||||||
|
|
||||||
<Seo {...{title, description, keywords, image: image || defaultImage}} />
|
<Seo {...{title, description, keywords, image}} />
|
||||||
|
|
||||||
<CanonicalUrlHeaders />
|
<CanonicalUrlHeaders />
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,9 @@
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Head from '@docusaurus/Head';
|
import Head from '@docusaurus/Head';
|
||||||
|
import {useThemeConfig, useTitleFormatter} from '@docusaurus/theme-common';
|
||||||
import useBaseUrl from '@docusaurus/useBaseUrl';
|
import useBaseUrl from '@docusaurus/useBaseUrl';
|
||||||
import {useTitleFormatter} from '@docusaurus/theme-common';
|
|
||||||
import type {Props} from '@theme/Seo';
|
import type {Props} from '@theme/Seo';
|
||||||
|
|
||||||
export default function Seo({
|
export default function Seo({
|
||||||
|
@ -17,13 +18,14 @@ export default function Seo({
|
||||||
keywords,
|
keywords,
|
||||||
image,
|
image,
|
||||||
}: Props): JSX.Element {
|
}: Props): JSX.Element {
|
||||||
const metaTitle = useTitleFormatter(title);
|
const {image: defaultImage} = useThemeConfig();
|
||||||
const metaImageUrl = useBaseUrl(image, {absolute: true});
|
const pageTitle = useTitleFormatter(title);
|
||||||
|
const pageImage = useBaseUrl(image || defaultImage, {absolute: true});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Head>
|
<Head>
|
||||||
{title && <title>{metaTitle}</title>}
|
<title>{pageTitle}</title>
|
||||||
{title && <meta property="og:title" content={metaTitle} />}
|
<meta property="og:title" content={pageTitle} />
|
||||||
|
|
||||||
{description && <meta name="description" content={description} />}
|
{description && <meta name="description" content={description} />}
|
||||||
{description && <meta property="og:description" content={description} />}
|
{description && <meta property="og:description" content={description} />}
|
||||||
|
@ -37,9 +39,9 @@ export default function Seo({
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{image && <meta property="og:image" content={metaImageUrl} />}
|
{pageImage && <meta property="og:image" content={pageImage} />}
|
||||||
{image && <meta name="twitter:image" content={metaImageUrl} />}
|
{pageImage && <meta name="twitter:image" content={pageImage} />}
|
||||||
{image && <meta name="twitter:card" content="summary_large_image" />}
|
{pageImage && <meta name="twitter:card" content="summary_large_image" />}
|
||||||
</Head>
|
</Head>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -100,6 +100,7 @@ export type ThemeConfig = {
|
||||||
prism: PrismConfig;
|
prism: PrismConfig;
|
||||||
footer?: Footer;
|
footer?: Footer;
|
||||||
hideableSidebar: boolean;
|
hideableSidebar: boolean;
|
||||||
|
image: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function useThemeConfig(): ThemeConfig {
|
export function useThemeConfig(): ThemeConfig {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue