diff --git a/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js b/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js new file mode 100644 index 0000000000..d1f7e5ab01 --- /dev/null +++ b/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js @@ -0,0 +1,38 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + title: 'Hello', + baseUrl: '/myBaseUrl/', + url: 'https://docusaurus.io', + i18n: { + defaultLocale: 'en', + locales: ['en','fr', 'es', 'de', 'it'], + localeConfigs: { + en: { + baseUrl: '/myBaseUrl/', + }, + fr: { + baseUrl: 'myBaseUrl/fr', + }, + es: { + url: 'https://es.docusaurus.io', + // TODO it's not clear what should be the inferred outDir in this case + baseUrl: 'es', + }, + de: { + // TODO it's not clear what should be the inferred outDir in this case + baseUrl: 'WHATEVER/de', + }, + it: { + url: 'https://it.docusaurus.io', + // TODO it's not clear what should be the inferred outDir in this case + baseUrl: '', + }, + } + } +}; diff --git a/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.custom.js b/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.custom.js new file mode 100644 index 0000000000..4ab382e3fa --- /dev/null +++ b/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.custom.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + title: 'Hello 2', + baseUrl: '/myBaseUrl-2/', + url: 'https://docusaurus.io', +}; diff --git a/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.js b/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.js new file mode 100644 index 0000000000..ea910cdc86 --- /dev/null +++ b/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +module.exports = { + title: 'Hello', + baseUrl: '/myBaseUrl/', + url: 'https://docusaurus.io', +}; diff --git a/packages/docusaurus/src/server/__tests__/__snapshots__/site.test.ts.snap b/packages/docusaurus/src/server/__tests__/__snapshots__/site.test.ts.snap index b6b28fc939..8a1b4c7f39 100644 --- a/packages/docusaurus/src/server/__tests__/__snapshots__/site.test.ts.snap +++ b/packages/docusaurus/src/server/__tests__/__snapshots__/site.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`load loads props for site 1`] = ` +exports[`loadSite custom-i18n-site loads site 1`] = ` { "baseUrl": "/", "codeTranslations": {}, @@ -177,3 +177,2280 @@ exports[`load loads props for site 1`] = ` "siteVersion": undefined, } `; + +exports[`loadSite simple-site-with-baseUrl loads site - custom config 1`] = ` +{ + "baseUrl": "/myBaseUrl-2/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "en", + "defaultLocale": "en", + "localeConfigs": { + "en": { + "baseUrl": "/myBaseUrl-2/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + }, + "locales": [ + "en", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/i18n/en", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/build/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl-2/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl-2/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": {}, + "locales": [ + "en", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello 2", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.custom.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl loads site - custom outDir 1`] = ` +{ + "baseUrl": "/myBaseUrl/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "en", + "defaultLocale": "en", + "localeConfigs": { + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + }, + "locales": [ + "en", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/i18n/en", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/custom-out-dir/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": {}, + "locales": [ + "en", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl loads site 1`] = ` +{ + "baseUrl": "/myBaseUrl/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "en", + "defaultLocale": "en", + "localeConfigs": { + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + }, + "locales": [ + "en", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/i18n/en", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/build/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": {}, + "locales": [ + "en", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale fr + custom outDir 1`] = ` +{ + "baseUrl": "/myBaseUrl/fr/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "fr", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/fr", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/custom-out-dir/fr/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/fr/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/fr/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - custom outDir 1`] = ` +{ + "baseUrl": "/myBaseUrl/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "en", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/en", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/custom-out-dir/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale de 1`] = ` +{ + "baseUrl": "/WHATEVER/de/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "de", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/de", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/build/WHATEVER/de/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/WHATEVER/de/404.html", + ], + "siteConfig": { + "baseUrl": "/WHATEVER/de/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale en 1`] = ` +{ + "baseUrl": "/myBaseUrl/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "en", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/en", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/build/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale es 1`] = ` +{ + "baseUrl": "/es/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "es", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/es", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/build/es/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/es/404.html", + ], + "siteConfig": { + "baseUrl": "/es/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale fr 1`] = ` +{ + "baseUrl": "/myBaseUrl/fr/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "fr", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/fr", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/build/fr/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/fr/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/fr/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site - locale it 1`] = ` +{ + "baseUrl": "/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "it", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/it", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/build/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/404.html", + ], + "siteConfig": { + "baseUrl": "/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; + +exports[`loadSite simple-site-with-baseUrl-i18n loads site 1`] = ` +{ + "baseUrl": "/myBaseUrl/", + "codeTranslations": {}, + "currentBundler": { + "instance": [Function], + "name": "webpack", + }, + "generatedFilesDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/.docusaurus", + "headTags": "", + "i18n": { + "currentLocale": "en", + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "de", + "label": "Deutsch", + "path": "de", + "translate": false, + "url": "https://docusaurus.io", + }, + "en": { + "baseUrl": "/myBaseUrl/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "en", + "label": "English", + "path": "en", + "translate": false, + "url": "https://docusaurus.io", + }, + "es": { + "baseUrl": "/es/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "es", + "label": "Español", + "path": "es", + "translate": false, + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "fr", + "label": "Français", + "path": "fr", + "translate": false, + "url": "https://docusaurus.io", + }, + "it": { + "baseUrl": "/", + "calendar": "gregory", + "direction": "ltr", + "htmlLang": "it", + "label": "Italiano", + "path": "it", + "translate": false, + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "localizationDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/i18n/en", + "outDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/build/", + "plugins": [ + { + "content": undefined, + "defaultCodeTranslations": {}, + "getClientModules": [Function], + "globalData": undefined, + "injectHtmlTags": [Function], + "name": "docusaurus-bootstrap-plugin", + "options": { + "id": "default", + }, + "path": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + { + "configureWebpack": [Function], + "content": undefined, + "defaultCodeTranslations": {}, + "globalData": undefined, + "name": "docusaurus-mdx-fallback-plugin", + "options": { + "id": "default", + }, + "path": ".", + "routes": [], + "version": { + "type": "synthetic", + }, + }, + ], + "postBodyTags": "", + "preBodyTags": "", + "routes": [], + "routesPaths": [ + "/myBaseUrl/404.html", + ], + "siteConfig": { + "baseUrl": "/myBaseUrl/", + "baseUrlIssueBanner": true, + "clientModules": [], + "customFields": {}, + "future": { + "experimental_faster": { + "lightningCssMinimizer": false, + "mdxCrossCompilerCache": false, + "rspackBundler": false, + "rspackPersistentCache": false, + "ssgWorkerThreads": false, + "swcHtmlMinimizer": false, + "swcJsLoader": false, + "swcJsMinimizer": false, + }, + "experimental_router": "browser", + "experimental_storage": { + "namespace": false, + "type": "localStorage", + }, + "v4": { + "removeLegacyPostBuildHeadAttribute": false, + "useCssCascadeLayers": false, + }, + }, + "headTags": [], + "i18n": { + "defaultLocale": "en", + "localeConfigs": { + "de": { + "baseUrl": "/WHATEVER/de/", + }, + "en": { + "baseUrl": "/myBaseUrl/", + }, + "es": { + "baseUrl": "/es/", + "url": "https://es.docusaurus.io", + }, + "fr": { + "baseUrl": "/myBaseUrl/fr/", + }, + "it": { + "baseUrl": "/", + "url": "https://it.docusaurus.io", + }, + }, + "locales": [ + "en", + "fr", + "es", + "de", + "it", + ], + "path": "i18n", + }, + "markdown": { + "anchors": { + "maintainCase": false, + }, + "emoji": true, + "format": "mdx", + "hooks": { + "onBrokenMarkdownImages": "throw", + "onBrokenMarkdownLinks": "warn", + }, + "mdx1Compat": { + "admonitions": true, + "comments": true, + "headingIds": true, + }, + "mermaid": false, + "parseFrontMatter": [Function], + "preprocessor": undefined, + "remarkRehypeOptions": undefined, + }, + "noIndex": false, + "onBrokenAnchors": "warn", + "onBrokenLinks": "throw", + "onDuplicateRoutes": "warn", + "plugins": [], + "presets": [], + "scripts": [], + "staticDirectories": [ + "static", + ], + "stylesheets": [], + "tagline": "", + "themeConfig": {}, + "themes": [], + "title": "Hello", + "titleDelimiter": "|", + "url": "https://docusaurus.io", + }, + "siteConfigPath": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n/docusaurus.config.js", + "siteDir": "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl-i18n", + "siteMetadata": { + "docusaurusVersion": "", + "pluginVersions": {}, + "siteVersion": undefined, + }, + "siteStorage": { + "namespace": "", + "type": "localStorage", + }, + "siteVersion": undefined, +} +`; diff --git a/packages/docusaurus/src/server/__tests__/site.test.ts b/packages/docusaurus/src/server/__tests__/site.test.ts index e62d721035..355e13555d 100644 --- a/packages/docusaurus/src/server/__tests__/site.test.ts +++ b/packages/docusaurus/src/server/__tests__/site.test.ts @@ -6,40 +6,138 @@ */ import path from 'path'; -import {loadSetup} from './testUtils'; +import {loadSiteFixture} from './testUtils'; -describe('load', () => { - it('loads props for site', async () => { - const site = await loadSetup('custom-i18n-site'); - expect(site.props).toMatchSnapshot(); +describe('loadSite', () => { + describe('simple-site-with-baseUrl', () => { + const siteFixture = 'loadSiteFixtures/simple-site-with-baseUrl'; + + it('loads site', async () => { + const site = await loadSiteFixture(siteFixture); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - custom outDir', async () => { + const site = await loadSiteFixture(siteFixture, { + outDir: 'custom-out-dir', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - custom config', async () => { + const site = await loadSiteFixture(siteFixture, { + config: 'docusaurus.config.custom.js', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - non-existing config', async () => { + await expect(() => + loadSiteFixture(siteFixture, { + config: 'docusaurus.config.doesNotExist.js', + }), + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"Config file at "/packages/docusaurus/src/server/__tests__/__fixtures__/loadSiteFixtures/simple-site-with-baseUrl/docusaurus.config.doesNotExist.js" not found."`, + ); + }); }); - it('loads props for site - custom i18n path', async () => { - const site = await loadSetup('custom-i18n-site', {locale: 'zh-Hans'}); - expect(site.props).toEqual( - expect.objectContaining({ - baseUrl: '/zh-Hans/', - i18n: expect.objectContaining({ - currentLocale: 'zh-Hans', - }), - localizationDir: path.join( - __dirname, - '__fixtures__/custom-i18n-site/i18n/zh-Hans-custom', - ), - outDir: path.join( - __dirname, - '__fixtures__/custom-i18n-site/build/zh-Hans/', - ), - routesPaths: ['/zh-Hans/404.html'], - siteConfig: expect.objectContaining({ + describe('simple-site-with-baseUrl-i18n', () => { + const siteFixture = 'loadSiteFixtures/simple-site-with-baseUrl-i18n'; + + it('loads site', async () => { + const site = await loadSiteFixture(siteFixture); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - custom outDir', async () => { + const site = await loadSiteFixture(siteFixture, { + outDir: 'custom-out-dir', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - locale en', async () => { + const site = await loadSiteFixture(siteFixture, { + locale: 'en', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - locale fr', async () => { + const site = await loadSiteFixture(siteFixture, { + locale: 'fr', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - locale fr + custom outDir', async () => { + const site = await loadSiteFixture(siteFixture, { + outDir: 'custom-out-dir', + locale: 'fr', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - locale es', async () => { + const site = await loadSiteFixture(siteFixture, { + locale: 'es', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - locale de', async () => { + const site = await loadSiteFixture(siteFixture, { + locale: 'de', + }); + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - locale it', async () => { + const site = await loadSiteFixture(siteFixture, { + locale: 'it', + }); + expect(site.props).toMatchSnapshot(); + }); + }); + + describe('custom-i18n-site', () => { + it('loads site', async () => { + const site = await loadSiteFixture('custom-i18n-site'); + + expect(site.props).toMatchSnapshot(); + }); + + it('loads site - zh-Hans locale', async () => { + const site = await loadSiteFixture('custom-i18n-site', { + locale: 'zh-Hans', + }); + + expect(site.props).toEqual( + expect.objectContaining({ baseUrl: '/zh-Hans/', + i18n: expect.objectContaining({ + currentLocale: 'zh-Hans', + }), + localizationDir: path.join( + __dirname, + '__fixtures__/custom-i18n-site/i18n/zh-Hans-custom', + ), + outDir: path.join( + __dirname, + '__fixtures__/custom-i18n-site/build/zh-Hans/', + ), + routesPaths: ['/zh-Hans/404.html'], + siteConfig: expect.objectContaining({ + baseUrl: '/zh-Hans/', + }), + siteStorage: { + namespace: '', + type: 'localStorage', + }, + plugins: site.props.plugins, }), - siteStorage: { - namespace: '', - type: 'localStorage', - }, - plugins: site.props.plugins, - }), - ); + ); + }); }); }); diff --git a/packages/docusaurus/src/server/__tests__/testUtils.ts b/packages/docusaurus/src/server/__tests__/testUtils.ts index 178c3c1c24..9f7bbe20c0 100644 --- a/packages/docusaurus/src/server/__tests__/testUtils.ts +++ b/packages/docusaurus/src/server/__tests__/testUtils.ts @@ -6,14 +6,14 @@ */ import path from 'path'; -import {loadSite, type LoadContextParams} from '../site'; -import type {Site} from '@docusaurus/types'; +import {loadSite, type LoadContextParams, type Site} from '../site'; -// Helper methods to setup dummy/fake projects. -export async function loadSetup( +export async function loadSiteFixture( name: string, options?: Partial, ): Promise { - const fixtures = path.join(__dirname, '__fixtures__'); - return loadSite({siteDir: path.join(fixtures, name), ...options}); + return loadSite({ + siteDir: path.join(__dirname, '__fixtures__', name), + ...options, + }); } diff --git a/packages/docusaurus/src/server/site.ts b/packages/docusaurus/src/server/site.ts index 9668a13cd9..ffd93f8e7c 100644 --- a/packages/docusaurus/src/server/site.ts +++ b/packages/docusaurus/src/server/site.ts @@ -120,7 +120,17 @@ export async function loadContext( // eventually including the // suffix const baseUrl = localeConfig.baseUrl; - const outDir = path.join(path.resolve(siteDir, baseOutDir), baseUrl); + // TODO not ideal: we should allow configuring a custom outDir for each locale + // The site baseUrl should be 100% decoupled from the file system output shape + // We added this logic to restore v3 retro-compatibility, because by default + // Docusaurus always wrote to ./build for sites having a baseUrl + // See also https://github.com/facebook/docusaurus/issues/11433 + // This logic assumes the locale baseUrl will start with the site baseUrl + // which is the case if an explicit locale baseUrl is not provided + // but in practice a custom locale baseUrl could be anything now + const outDirBaseUrl = baseUrl.replace(initialSiteConfig.baseUrl, '/'); + + const outDir = path.join(path.resolve(siteDir, baseOutDir), outDirBaseUrl); const localizationDir = path.resolve( siteDir, diff --git a/packages/docusaurus/src/webpack/__tests__/client.test.ts b/packages/docusaurus/src/webpack/__tests__/client.test.ts index 0f4968bfc5..6ed3a660f0 100644 --- a/packages/docusaurus/src/webpack/__tests__/client.test.ts +++ b/packages/docusaurus/src/webpack/__tests__/client.test.ts @@ -8,7 +8,7 @@ import webpack from 'webpack'; import {createBuildClientConfig, createStartClientConfig} from '../client'; -import {loadSetup} from '../../server/__tests__/testUtils'; +import {loadSiteFixture} from '../../server/__tests__/testUtils'; import {createConfigureWebpackUtils} from '../configure'; import { DEFAULT_FASTER_CONFIG, @@ -23,7 +23,7 @@ function createTestConfigureWebpackUtils() { describe('webpack dev config', () => { it('simple start', async () => { - const {props} = await loadSetup('simple-site'); + const {props} = await loadSiteFixture('simple-site'); const {clientConfig} = await createStartClientConfig({ props, faster: DEFAULT_FASTER_CONFIG, @@ -35,7 +35,7 @@ describe('webpack dev config', () => { }); it('simple build', async () => { - const {props} = await loadSetup('simple-site'); + const {props} = await loadSiteFixture('simple-site'); const {config} = await createBuildClientConfig({ props, faster: DEFAULT_FASTER_CONFIG, @@ -47,7 +47,7 @@ describe('webpack dev config', () => { }); it('custom start', async () => { - const {props} = await loadSetup('custom-site'); + const {props} = await loadSiteFixture('custom-site'); const {clientConfig} = await createStartClientConfig({ props, faster: DEFAULT_FASTER_CONFIG, @@ -59,7 +59,7 @@ describe('webpack dev config', () => { }); it('custom build', async () => { - const {props} = await loadSetup('custom-site'); + const {props} = await loadSiteFixture('custom-site'); const {config} = await createBuildClientConfig({ props, faster: DEFAULT_FASTER_CONFIG, diff --git a/packages/docusaurus/src/webpack/__tests__/server.test.ts b/packages/docusaurus/src/webpack/__tests__/server.test.ts index 8f4b750617..2a34183af2 100644 --- a/packages/docusaurus/src/webpack/__tests__/server.test.ts +++ b/packages/docusaurus/src/webpack/__tests__/server.test.ts @@ -9,7 +9,7 @@ import {jest} from '@jest/globals'; import webpack from 'webpack'; import createServerConfig from '../server'; -import {loadSetup} from '../../server/__tests__/testUtils'; +import {loadSiteFixture} from '../../server/__tests__/testUtils'; import {createConfigureWebpackUtils} from '../configure'; import {DEFAULT_FUTURE_CONFIG} from '../../server/configValidation'; @@ -22,7 +22,7 @@ function createTestConfigureWebpackUtils() { describe('webpack production config', () => { it('simple', async () => { jest.spyOn(console, 'log').mockImplementation(() => {}); - const {props} = await loadSetup('simple-site'); + const {props} = await loadSiteFixture('simple-site'); const {config} = await createServerConfig({ props, configureWebpackUtils: await createTestConfigureWebpackUtils(), @@ -32,7 +32,7 @@ describe('webpack production config', () => { it('custom', async () => { jest.spyOn(console, 'log').mockImplementation(() => {}); - const {props} = await loadSetup('custom-site'); + const {props} = await loadSiteFixture('custom-site'); const {config} = await createServerConfig({ props, configureWebpackUtils: await createTestConfigureWebpackUtils(),