diff --git a/packages/docusaurus-plugin-google-analytics/src/index.ts b/packages/docusaurus-plugin-google-analytics/src/index.ts index 0f699c5c90729..b3c302b339ba2 100644 --- a/packages/docusaurus-plugin-google-analytics/src/index.ts +++ b/packages/docusaurus-plugin-google-analytics/src/index.ts @@ -13,6 +13,8 @@ import type { HtmlTags, OptionValidationContext, ValidationResult, + ThemeConfig, + ThemeConfigValidationContext, } from '@docusaurus/types'; import type {PluginOptions} from '@docusaurus/plugin-google-analytics'; @@ -77,3 +79,14 @@ export function validateOptions({ }: OptionValidationContext): ValidationResult { return validate(pluginOptionsSchema, options); } + +export function validateThemeConfig({ + themeConfig, +}: ThemeConfigValidationContext): ValidationResult { + if (themeConfig.googleAnalytics) { + throw new Error( + 'The "googleAnalytics" field in themeConfig should now be specified as option for plugin-google-analytics. More information at .', + ); + } + return themeConfig; +} diff --git a/packages/docusaurus-plugin-google-gtag/src/index.ts b/packages/docusaurus-plugin-google-gtag/src/index.ts index 438cdd8c9433c..30bf6980e5594 100644 --- a/packages/docusaurus-plugin-google-gtag/src/index.ts +++ b/packages/docusaurus-plugin-google-gtag/src/index.ts @@ -13,6 +13,8 @@ import type { HtmlTags, OptionValidationContext, ValidationResult, + ThemeConfig, + ThemeConfigValidationContext, } from '@docusaurus/types'; import type {PluginOptions} from '@docusaurus/plugin-google-gtag'; @@ -90,3 +92,14 @@ export function validateOptions({ }: OptionValidationContext): ValidationResult { return validate(pluginOptionsSchema, options); } + +export function validateThemeConfig({ + themeConfig, +}: ThemeConfigValidationContext): ValidationResult { + if (themeConfig.gtag) { + throw new Error( + 'The "gtag" field in themeConfig should now be specified as option for plugin-google-gtag. More information at .', + ); + } + return themeConfig; +} diff --git a/packages/docusaurus-preset-classic/src/index.ts b/packages/docusaurus-preset-classic/src/index.ts index 745c9cd82f5c2..99675658069ae 100644 --- a/packages/docusaurus-preset-classic/src/index.ts +++ b/packages/docusaurus-preset-classic/src/index.ts @@ -31,8 +31,17 @@ export default function preset( const {themeConfig} = siteConfig; const {algolia} = themeConfig as Partial; const isProd = process.env.NODE_ENV === 'production'; - const {debug, docs, blog, pages, sitemap, theme, analytics, gtag, ...rest} = - opts; + const { + debug, + docs, + blog, + pages, + sitemap, + theme, + googleAnalytics, + gtag, + ...rest + } = opts; const themes: PluginConfig[] = []; themes.push(makePluginConfig('@docusaurus/theme-classic', opts.theme)); @@ -50,9 +59,9 @@ export default function preset( if (pages !== false) { plugins.push(makePluginConfig('@docusaurus/plugin-content-pages', pages)); } - if (isProd && analytics) { + if (isProd && googleAnalytics) { plugins.push( - makePluginConfig('@docusaurus/plugin-google-analytics', analytics), + makePluginConfig('@docusaurus/plugin-google-analytics', googleAnalytics), ); } if (debug || (debug === undefined && !isProd)) { diff --git a/packages/docusaurus-preset-classic/src/preset-classic.d.ts b/packages/docusaurus-preset-classic/src/preset-classic.d.ts index 6a21ed2d8cc39..84d71226fa838 100644 --- a/packages/docusaurus-preset-classic/src/preset-classic.d.ts +++ b/packages/docusaurus-preset-classic/src/preset-classic.d.ts @@ -12,7 +12,7 @@ export type Options = { pages?: false | import('@docusaurus/plugin-content-pages').Options; sitemap?: false | import('@docusaurus/plugin-sitemap').Options; theme?: import('@docusaurus/theme-classic').Options; - analytics?: import('@docusaurus/plugin-google-analytics').Options; + googleAnalytics?: import('@docusaurus/plugin-google-analytics').Options; gtag?: import('@docusaurus/plugin-google-gtag').Options; };