From 4716be0d44ce8a12aeabf69398f43c4f44a399b8 Mon Sep 17 00:00:00 2001
From: Florina Pacurar
Date: Mon, 17 Jul 2023 17:00:51 +0300
Subject: [PATCH 1/3] feat(core): generate meta og locale and alternates
---
.../docusaurus/src/client/SiteMetadataDefaults.tsx | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/packages/docusaurus/src/client/SiteMetadataDefaults.tsx b/packages/docusaurus/src/client/SiteMetadataDefaults.tsx
index 1f49959d3536..56a412ed181a 100644
--- a/packages/docusaurus/src/client/SiteMetadataDefaults.tsx
+++ b/packages/docusaurus/src/client/SiteMetadataDefaults.tsx
@@ -28,6 +28,18 @@ export default function SiteMetadataDefaults(): JSX.Element {
*/}
{title}
+
+ {Object.values(localeConfigs).map((config) =>
+ htmlLang !== config.htmlLang ? (
+
+ ) : (
+ ''
+ ),
+ )}
{noIndex && }
From f4de5a6e49a47c9420d29917cecd1cb1205de5e1 Mon Sep 17 00:00:00 2001
From: Florina Pacurar
Date: Fri, 28 Jul 2023 12:08:46 +0300
Subject: [PATCH 2/3] fix: move og:locale code to classic theme instead of
defaults
---
.../src/theme/SiteMetadata/index.tsx | 23 ++++++++++++++++++-
.../src/client/SiteMetadataDefaults.tsx | 12 ----------
2 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx
index 9a30c775fff2..713067a17120 100644
--- a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx
+++ b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx
@@ -24,10 +24,18 @@ import SearchMetadata from '@theme/SearchMetadata';
// See https://github.com/facebook/docusaurus/issues/3317
function AlternateLangHeaders(): JSX.Element {
const {
- i18n: {defaultLocale, localeConfigs},
+ i18n: {currentLocale, defaultLocale, localeConfigs},
} = useDocusaurusContext();
const alternatePageUtils = useAlternatePageUtils();
+ const currentHtmlLang = localeConfigs[currentLocale]?.htmlLang;
+
+ // HTML lang is a BCP 47 tag, but the Open Graph protocol requires
+ // using underscores instead of dashes.
+ // See https://ogp.me/#optional
+ // See https://en.wikipedia.org/wiki/IETF_language_tag)
+ const bcp47ToLocale = (code: string): string => code.replace('-', '_');
+
// Note: it is fine to use both "x-default" and "en" to target the same url
// See https://www.searchviu.com/en/multiple-hreflang-tags-one-url/
return (
@@ -51,6 +59,19 @@ function AlternateLangHeaders(): JSX.Element {
})}
hrefLang="x-default"
/>
+
+ {currentHtmlLang && (
+
+ )}
+ {Object.values(localeConfigs)
+ .filter((config) => currentHtmlLang !== config.htmlLang)
+ .map((config) => (
+
+ ))}
);
}
diff --git a/packages/docusaurus/src/client/SiteMetadataDefaults.tsx b/packages/docusaurus/src/client/SiteMetadataDefaults.tsx
index 56a412ed181a..1f49959d3536 100644
--- a/packages/docusaurus/src/client/SiteMetadataDefaults.tsx
+++ b/packages/docusaurus/src/client/SiteMetadataDefaults.tsx
@@ -28,18 +28,6 @@ export default function SiteMetadataDefaults(): JSX.Element {
*/}
{title}
-
- {Object.values(localeConfigs).map((config) =>
- htmlLang !== config.htmlLang ? (
-
- ) : (
- ''
- ),
- )}
{noIndex && }
From 1fac61fcbf481887ea7412a97fb5d0fcdfe3312e Mon Sep 17 00:00:00 2001
From: Florina Pacurar
Date: Fri, 28 Jul 2023 13:07:04 +0300
Subject: [PATCH 3/3] fix: chore: address minor PR feedback
---
.../src/theme/SiteMetadata/index.tsx | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx
index 713067a17120..409905c49048 100644
--- a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx
+++ b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx
@@ -28,13 +28,14 @@ function AlternateLangHeaders(): JSX.Element {
} = useDocusaurusContext();
const alternatePageUtils = useAlternatePageUtils();
- const currentHtmlLang = localeConfigs[currentLocale]?.htmlLang;
+ const currentHtmlLang = localeConfigs[currentLocale]!.htmlLang;
// HTML lang is a BCP 47 tag, but the Open Graph protocol requires
// using underscores instead of dashes.
// See https://ogp.me/#optional
// See https://en.wikipedia.org/wiki/IETF_language_tag)
- const bcp47ToLocale = (code: string): string => code.replace('-', '_');
+ const bcp47ToOpenGraphLocale = (code: string): string =>
+ code.replace('-', '_');
// Note: it is fine to use both "x-default" and "en" to target the same url
// See https://www.searchviu.com/en/multiple-hreflang-tags-one-url/
@@ -60,16 +61,17 @@ function AlternateLangHeaders(): JSX.Element {
hrefLang="x-default"
/>
- {currentHtmlLang && (
-
- )}
+
{Object.values(localeConfigs)
.filter((config) => currentHtmlLang !== config.htmlLang)
.map((config) => (
))}