Skip to content

Commit 63c9bb2

Browse files
EPMRPP-116321 || Remove hreflang tags to resolve canonical conflicts
1 parent 00b79ce commit 63c9bb2

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

src/theme/SiteMetadata/index.js

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
import React from 'react';
2+
import Head from '@docusaurus/Head';
3+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
4+
import useBaseUrl from '@docusaurus/useBaseUrl';
5+
import {PageMetadata, useThemeConfig} from '@docusaurus/theme-common';
6+
import {
7+
DEFAULT_SEARCH_TAG,
8+
} from '@docusaurus/theme-common/internal';
9+
import {useLocation} from '@docusaurus/router';
10+
import {applyTrailingSlash} from '@docusaurus/utils-common';
11+
import SearchMetadata from '@theme/SearchMetadata';
12+
13+
function useDefaultCanonicalUrl() {
14+
const {
15+
siteConfig: {url: siteUrl, baseUrl, trailingSlash},
16+
} = useDocusaurusContext();
17+
const {pathname} = useLocation();
18+
const canonicalPathname = applyTrailingSlash(useBaseUrl(pathname), {
19+
trailingSlash,
20+
baseUrl,
21+
});
22+
return siteUrl + canonicalPathname;
23+
}
24+
25+
function CanonicalUrlHeaders({permalink}) {
26+
const {
27+
siteConfig: {url: siteUrl},
28+
} = useDocusaurusContext();
29+
const defaultCanonicalUrl = useDefaultCanonicalUrl();
30+
const canonicalUrl = permalink
31+
? `${siteUrl}${permalink}`
32+
: defaultCanonicalUrl;
33+
return (
34+
<Head>
35+
<meta property="og:url" content={canonicalUrl} />
36+
<link rel="canonical" href={canonicalUrl} />
37+
</Head>
38+
);
39+
}
40+
41+
export default function SiteMetadata() {
42+
const {
43+
i18n: {currentLocale},
44+
} = useDocusaurusContext();
45+
const {metadata, image: defaultImage} = useThemeConfig();
46+
return (
47+
<>
48+
<Head>
49+
<meta name="twitter:card" content="summary_large_image" />
50+
<body className="navigation-with-keyboard" />
51+
</Head>
52+
53+
{defaultImage && <PageMetadata image={defaultImage} />}
54+
55+
<CanonicalUrlHeaders />
56+
57+
<SearchMetadata tag={DEFAULT_SEARCH_TAG} locale={currentLocale} />
58+
59+
<Head>
60+
{metadata.map((metadatum, i) => (
61+
<meta key={i} {...metadatum} />
62+
))}
63+
</Head>
64+
</>
65+
);
66+
}

0 commit comments

Comments
 (0)