From 2a13c7773f2aa6dc2f8d633c1d6fb8df92aec03d Mon Sep 17 00:00:00 2001 From: Endilie Yacop Sucipto Date: Sat, 20 Apr 2019 22:09:21 +0700 Subject: [PATCH] feat(v2): enable exact for addRoute API (#1374) --- .../src/index.js | 2 ++ .../src/index.js | 1 + .../src/index.js | 1 + packages/docusaurus/lib/server/load/routes.js | 20 +++++++++---------- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/packages/docusaurus-plugin-content-blog/src/index.js b/packages/docusaurus-plugin-content-blog/src/index.js index d299fd721c..9475f460fe 100644 --- a/packages/docusaurus-plugin-content-blog/src/index.js +++ b/packages/docusaurus-plugin-content-blog/src/index.js @@ -128,6 +128,7 @@ class DocusaurusPluginContentBlog { addRoute({ path: permalink, component: blogPageComponent, + exact: true, metadata: metadataItem, modules: { entries: metadataItem.posts.map(post => ({ @@ -147,6 +148,7 @@ class DocusaurusPluginContentBlog { addRoute({ path: permalink, component: blogPostComponent, + exact: true, metadata: metadataItem, modules: { content: metadataItem.source, diff --git a/packages/docusaurus-plugin-content-docs/src/index.js b/packages/docusaurus-plugin-content-docs/src/index.js index 5965771fcd..76a8e77f6b 100644 --- a/packages/docusaurus-plugin-content-docs/src/index.js +++ b/packages/docusaurus-plugin-content-docs/src/index.js @@ -214,6 +214,7 @@ class DocusaurusPluginContentDocs { routes: Object.values(content.docs).map(metadataItem => ({ path: metadataItem.permalink, component: docItemComponent, + exact: true, metadata: metadataItem, modules: { content: metadataItem.source, diff --git a/packages/docusaurus-plugin-content-pages/src/index.js b/packages/docusaurus-plugin-content-pages/src/index.js index d865711566..cccde813d4 100644 --- a/packages/docusaurus-plugin-content-pages/src/index.js +++ b/packages/docusaurus-plugin-content-pages/src/index.js @@ -103,6 +103,7 @@ class DocusaurusPluginContentPages { addRoute({ path: permalink, component, + exact: true, metadata: metadataItem, modules: { content: source, diff --git a/packages/docusaurus/lib/server/load/routes.js b/packages/docusaurus/lib/server/load/routes.js index 00e5228cf6..025c63ccf3 100644 --- a/packages/docusaurus/lib/server/load/routes.js +++ b/packages/docusaurus/lib/server/load/routes.js @@ -58,6 +58,7 @@ async function loadRoutes(pluginsRouteConfigs) { metadata, modules = {}, routes, + exact, } = routeConfig; addRoutesPath(routePath); @@ -90,15 +91,6 @@ async function loadRoutes(pluginsRouteConfigs) { const componentChunk = genImportChunk(componentPath, 'component'); addRoutesChunkNames(routePath, 'component', componentChunk); - if (routes) { - return ` -{ - path: '${routePath}', - component: ComponentCreator('${routePath}'), - routes: [${routes.map(generateRouteCode).join(',')}], -}`; - } - function genRouteChunkNames(value) { if (Array.isArray(value)) { return value.map(genRouteChunkNames); @@ -132,11 +124,17 @@ async function loadRoutes(pluginsRouteConfigs) { addRoutesChunkNames(routePath, 'metadata', metadataChunk); } + const routesStr = routes + ? `routes: [${routes.map(generateRouteCode).join(',')}],` + : ''; + const exactStr = exact ? `exact: true,` : ''; + return ` { path: '${routePath}', - exact: true, - component: ComponentCreator('${routePath}') + component: ComponentCreator('${routePath}'), + ${exactStr} + ${routesStr} }`; }