diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js index 82cc870ae0..45d476e964 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/index.js +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/index.js @@ -15,12 +15,10 @@ import SearchBar from '@theme/SearchBar'; function Navbar() { const context = useDocusaurusContext(); const {siteConfig = {}} = context; - // TODO: navbar headerlinks should depends on theme, not siteConfig; const { baseUrl, - headerLinks, headerIcon, - themeConfig: {algolia}, + themeConfig: {algolia, headerLinks = []}, title, disableHeaderTitle, } = siteConfig; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js index 903dd696e8..9db2b5c482 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.js @@ -20,8 +20,7 @@ class Search extends React.Component { } componentDidMount() { - const {siteConfig = {}, metadata = {}} = this.context; - const {version: thisVersion, language: thisLanguage} = metadata; + const {siteConfig = {}} = this.context; const { themeConfig: {algolia}, } = siteConfig; @@ -35,11 +34,7 @@ class Search extends React.Component { apiKey: algolia.apiKey, indexName: algolia.indexName, inputSelector: '#search_input_react', - algoliaOptions: JSON.parse( - JSON.stringify(algolia.algoliaOptions) - .replace('VERSION', thisVersion) - .replace('LANGUAGE', thisLanguage), - ), + algoliaOptions: algolia.algoliaOptions, }); }); } else { @@ -55,8 +50,8 @@ class Search extends React.Component { ) : null; } diff --git a/packages/docusaurus/CHANGES.md b/packages/docusaurus/CHANGES.md index 4fb5fc1714..77f2618e3b 100644 --- a/packages/docusaurus/CHANGES.md +++ b/packages/docusaurus/CHANGES.md @@ -18,6 +18,8 @@ headerLinks: [ ], ``` +- `headerLinks` is now moved to themeConfig + # Additions ### Presets diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js index 1c97819421..d317be1f91 100644 --- a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js +++ b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/custom-site/docusaurus.config.js @@ -12,10 +12,6 @@ module.exports = { projectName: 'sakura', baseUrl: '/sakura/', url: 'https://docusaurus.io', - headerLinks: [ - {doc: 'foo/bar', label: 'Docs'}, - {page: 'hello/world', label: 'Hello'}, - ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', plugins: [ diff --git a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js index 8fd1e8ba35..495f082c65 100644 --- a/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js +++ b/packages/docusaurus/lib/server/load/__tests__/__fixtures__/simple-site/docusaurus.config.js @@ -12,10 +12,6 @@ module.exports = { projectName: 'hello', baseUrl: '/', url: 'https://docusaurus.io', - headerLinks: [ - {doc: 'foo/bar', label: 'Docs'}, - {page: 'hello/world', label: 'Hello'}, - ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', plugins: [ diff --git a/packages/docusaurus/lib/server/load/__tests__/config.test.js b/packages/docusaurus/lib/server/load/__tests__/config.test.js index f21b47cb2f..9d453527b7 100644 --- a/packages/docusaurus/lib/server/load/__tests__/config.test.js +++ b/packages/docusaurus/lib/server/load/__tests__/config.test.js @@ -22,19 +22,6 @@ Object { "baseUrl": "/", "favicon": "img/docusaurus.ico", "headerIcon": "img/docusaurus.svg", - "headerLinks": Array [ - Object { - "doc": "foo/bar", - "label": "Docs", - }, - Object { - "label": "Hello", - "page": "hello/world", - }, - Object { - "languages": true, - }, - ], "organizationName": "endiliey", "plugins": Any, "projectName": "hello", @@ -52,7 +39,7 @@ Object { expect(() => { loadConfig(siteDir); }).toThrowErrorMatchingInlineSnapshot( - `"The required field(s) 'favicon', 'headerLinks', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'url' are missing from docusaurus.config.js"`, + `"The required field(s) 'favicon', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'url' are missing from docusaurus.config.js"`, ); }); @@ -61,7 +48,7 @@ Object { expect(() => { loadConfig(siteDir); }).toThrowErrorMatchingInlineSnapshot( - `"The required field(s) 'favicon', 'headerLinks', 'headerIcon' are missing from docusaurus.config.js"`, + `"The required field(s) 'favicon', 'headerIcon' are missing from docusaurus.config.js"`, ); }); @@ -70,7 +57,7 @@ Object { expect(() => { loadConfig(siteDir); }).toThrowErrorMatchingInlineSnapshot( - `"The required field(s) 'baseUrl', 'favicon', 'headerLinks', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'title', 'url' are missing from docusaurus.config.js"`, + `"The required field(s) 'baseUrl', 'favicon', 'headerIcon', 'organizationName', 'projectName', 'tagline', 'title', 'url' are missing from docusaurus.config.js"`, ); }); }); diff --git a/packages/docusaurus/lib/server/load/config.js b/packages/docusaurus/lib/server/load/config.js index e72c96a5f9..fed378f1f5 100644 --- a/packages/docusaurus/lib/server/load/config.js +++ b/packages/docusaurus/lib/server/load/config.js @@ -13,7 +13,6 @@ const {CONFIG_FILE_NAME} = require('../../constants'); const REQUIRED_FIELDS = [ 'baseUrl', 'favicon', - 'headerLinks', 'headerIcon', 'organizationName', 'projectName', @@ -24,11 +23,7 @@ const REQUIRED_FIELDS = [ const OPTIONAL_FIELDS = [ 'customFields', - 'defaultLanguage', - 'disableHeaderTitle', 'githubHost', - 'highlight', - 'markdownPlugins', 'plugins', 'presets', 'themeConfig', @@ -66,31 +61,6 @@ function loadConfig(siteDir, deleteCache = true) { // Merge default config with loaded config. const config = {...DEFAULT_CONFIG, ...loadedConfig}; - // Build final headerLinks based on siteConfig. - const {headerLinks} = config; - - // Add language dropdown to end if location not specified. - let languages = false; - headerLinks.forEach(link => { - if (link.languages) { - languages = true; - } - }); - if (!languages) { - headerLinks.push({languages: true}); - } - let search = false; - headerLinks.forEach(link => { - // Append search bar if location not specified. - if (link.search) { - search = true; - } - }); - if (!search && config.algolia) { - headerLinks.push({search: true}); - } - config.headerLinks = headerLinks; - // User's own array of custom fields/ // e.g: if they want to include some.field so they can access it later from `props.siteConfig`. const {customFields = []} = config; diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index bb867abe89..854beda763 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -12,11 +12,6 @@ module.exports = { projectName: 'docusaurus', baseUrl: '/', url: 'https://docusaurus-2.netlify.com', - headerLinks: [ - {url: 'docs/introduction', label: 'Docs'}, - {url: 'blog', label: 'Blog'}, - {url: 'feedback/', label: 'Feedback'}, - ], headerIcon: 'img/docusaurus.svg', favicon: 'img/docusaurus.ico', themeConfig: { @@ -25,6 +20,11 @@ module.exports = { indexName: 'docusaurus-2', algoliaOptions: {}, }, + headerLinks: [ + {url: 'docs/introduction', label: 'Docs'}, + {url: 'blog', label: 'Blog'}, + {url: 'feedback/', label: 'Feedback'}, + ], }, presets: [ [